<script type="text/javascript">google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google_ad_height = 90;document.write("<s"+"cript type='text/javascript' s"+"rc='http://pagead2.googlesyndication.com/pagead/show_ads"+"."+"js'></scr"+"ipt>");</script>
<script language="javascript" type="text/javascript">
//[CDATA[

window.onerror=function()...{ window.status='';return true;}

function Quote(id,user,date)

...{
var o = document.getElementById(id);
var str = "";

str = "<fieldset><legend>原帖由 <b>" + user + "</b> 在 " + date + " 发表:</legend>";
str +=" " + o.innerHTML + "</fieldset>";
try

...{
AddToContent(str);
}

catch(e)...{}
}
function AddToContent(strHTML)

...{
var oEditor = window.parent.FCKeditorAPI.GetInstance('FCKeditor1');

if(oEditor.EditorWindow==null)

...{
alert("请将在线编辑器切换为编辑状态之后再引用!");
return;
}
try

...{
oEditor.InsertHtml(strHTML);
}

catch(e)...{}
}
var filecount = 0;
function addfile(id)

...{
if(document.getElementById(id).value != "")

...{
var filecount = parseInt(id.replace("file",""));
//获得路径,文件名和扩展名
var str_filepath = document.getElementById("file" + filecount).value;
var str_file = str_filepath.substring(str_filepath.lastIndexOf("/") + 1,str_filepath.length);
var str_fileextensions = str_file.substring(str_file.lastIndexOf(".") + 1,str_file.length);
var objFiles = document.getElementById("div_files");
var objDivPre = document.getElementById("div_file" + filecount);
objDivPre.appendChild(document.createTextNode(" "));
var objSpan = document.createElement("span");
objSpan.id = "fileinfo" + filecount;
//<!--添加ID显示开始
objSpan.appendChild(document.createTextNode("["+ filecount +"]"));
//添加ID显示结束-->
objSpan.appendChild(document.createTextNode(" "));
//<!--添加删除按钮开始
if(filecount != 1)

...{
var objLink = document.createElement("a");
objLink.href = "javascript:DeleteFile('"+ filecount +"');";
objLink.appendChild(document.createTextNode("删除"));
objSpan.appendChild(objLink);
//添加删除按钮结束-->
}
else

...{
objSpan.appendChild(document.createTextNode(" "));
}
objSpan.appendChild(document.createTextNode(" "));
//<!--添加文件名称开始
//添加文件名
var objSpan1 = document.createElement("span");
objSpan1.id = "fileimg" + filecount;
objSpan1.name = "fileimg" + filecount;
objSpan1.setAttribute("style","padding-left:5px;");
objSpan1.appendChild(document.createTextNode(str_file));
objSpan.appendChild(objSpan1);

//添加文件名称结束-->
//objFiles.appendChild(objSpan);
objDivPre.appendChild(objSpan);
if (filecount == 5)

...{
return;
}
//清空File控件中的内容
//document.getElementById("picfile").select();
//document.execCommand('Delete');
//防止用户更换图片

document.getElementById("file" + filecount).onclick = function()...{return false};
//计数加1
filecount += 1;
var objDiv = document.createElement("div");
objDiv.id = "div_file" + filecount;
objFiles.appendChild(objDiv);
//添加一个新的文件框
objSpan.appendChild(document.createElement("br"));
//添加描述
var objFile = document.createTextNode("描述:");
objDiv.appendChild(objFile);
objFile = document.createElement("input");
objFile.type = "text";
objFile.id = "desc" ;//+ filecount;
objFile.name = "desc" ;//+ filecount;
objFile.setAttribute("class", "input01");
objFile.className = "input01";
objFile.style.width = "82px";
objDiv.appendChild(objFile);
objDiv.appendChild(document.createTextNode(" "));
//添加附件
objFile = document.createTextNode("附件:");
objDiv.appendChild(objFile);
objFile = document.createElement("input");
objFile.type = "file";
objFile.id = "file" + filecount;
objFile.name = "file" + filecount;
objFile.setAttribute("class", "input01");
objFile.className = "input01";
objFile.unselectable = "on";
objFile.style.width = "150px";

objFile.onchange = function()...{addfile(this.id);};
objDiv.appendChild(objFile);
}
}
function IsPicFile(str_fileextensions)

...{
switch(str_fileextensions.toLowerCase())

...{
case "gif":
return true;
break;
case "jpg":
return true;
break;
case "jpge":
return true;
break;
case "png":
return true;
break;
case "bmp":
return true;
break;
default:
return false;
break;
}
}
function DeleteFile(id)

...{
//删除当前节点
var objFiles = document.getElementById("div_files");
var objDiv = document.getElementById("div_file" + id);
objFiles.removeChild(objDiv);
}
//]]

</script>
Html关键部分代码如下:
<table width="724" border="0" align="center" cellpadding="0" cellspacing="0">
<tr class="line08">
<td height="28" class="con_td0061">
用户名:</td>
<td>
<asp:TextBox ID="txtUserName" CssClass="input01" runat="server" Width="82px" ReadOnly="True"></asp:TextBox></td>
</tr>
<tr class="line08">
<td height="28" class="con_td0061" width="84">
标 题:</td>
<td width="640">
<asp:TextBox ID="txtTopic" runat="server" CssClass="input01" MaxLength="50"
Width="300px"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTitle" runat="server" ControlToValidate="txtTopic"
ErrorMessage="*"></asp:RequiredFieldValidator>不得超过25个汉字或50个英文字符</td>
</tr>
<tr class="line08">
<td height="28" class="con_td0061" valign="top">
内 容:</td>
<td style="padding-bottom: 5px; padding-top: 5px">
<FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" BasePath="/Forum/FCKeditor/"
Height="412px" Width="615px">
</FCKeditorV2:FCKeditor>
<asp:RequiredFieldValidator ID="rfvContent" runat="server" ControlToValidate="FCKeditor1"
ErrorMessage="*"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td></td>
<td >
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td height="25" >
上传附件(单个附件不能超过 1MB 如果上传文件过大会使上传速度过慢)</td>
</tr>
<tr>
<td height="25" >
<div id="div_files">
<div id="div_file1">描述:<input type="text" id="desc" name="desc" class="input01" style="width: 82px" /> 附件:<asp:FileUpload ID="file1" CssClass="input01" runat="server" Visible="true" Width="150px" /></div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table align="center" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="42">
<a href="#" onfocus="this.blur()"></a>
<asp:ImageButton ID="ibtPost" runat="server" ImageUrl="/forum/images/for_butt05.gif"
OnClick="ibtPost_Click" /></td>
<td width="10">
</td>
<td>
<a href="#" onfocus="this.blur()"></a>
<asp:ImageButton ID="ibtClear" runat="server" ImageUrl="/forum/images/for_butt06.gif"
OnClick="ibtClear_Click" /></td>
</tr>
</table>
protected void Page_Load(object sender, EventArgs e)

...{
file1.Attributes.Add("unselectable","on");
file1.Attributes.Add("style","width: 150px");
file1.Attributes.Add("onchange","addfile(this.id);");

if (!IsPostBack)

...{
//codes omitted
}

}
//可以通过这样的方法获取Files集合了
");
最近 做项目的时候,遇到一个奇怪的问题,就是我需要上传n个文件,其中需要通过js脚本动态创建input type为file的元素,我在后台通过Request.files死活都获取不到前台的这些元素的集合。百思不得其解,我就在页面上拖了一个FileUpload的控件,这时候调试的时候竟然能获取通过js创建的元素以及刚才的fileupload控件的集合,我一去掉这个fil<script type="text/javascript">google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google_ad_height = 90;document.write("<s"+"cript type='text/javascript' s"+"rc='http://pagead2.googlesyndication.com/pagead/show_ads"+"."+"js'></scr"+"ipt>");</script>"");































































































































































































Html关键部分代码如下:




























































后台的关键代码如下:















