上兵伐谋

“上兵伐谋,其次伐交,其次伐兵,其下攻城”。
posts - 35, comments - 32, trackbacks - 0, articles - 3

Microsoft .NET Framework 中没有任何内置功能使您可以从一个 ASP.NET 页上载多个文件。然而,只需要少量工作,您就可以像过去使用 .NET 1.x 那样完成此任务。

方法是将 System.IO 类导入到 ASP.NET 页中,然后使用 HttpFileCollection 类捕获通过 Request 对象发送来的所有文件。该方法使您可以从一个页面上载所需数量的文件。

				
						
protected void Button1_Click(object sender, EventArgs e)
{
   string filepath = "C:\\Uploads";
   HttpFileCollection uploadedFiles = Request.Files;
    
   for (int i = 0; i < uploadedFiles.Count; i++)
   {    
      HttpPostedFile userPostedFile = uploadedFiles[i];
    
      try
      {    
         if (userPostedFile.ContentLength > 0 )
         {
            Label1.Text += "File #" + (i+1) + "";
            Label1.Text += "File Content Type: " + userPostedFile.ContentType + "";
            Label1.Text += "File Size: " + userPostedFile.ContentLength + "kb";
            Label1.Text += "File Name: " + userPostedFile.FileName + "";
    
            userPostedFile.SaveAs(filepath + "\\" + System.IO.Path.GetFileName(userPostedFile.FileName));
    
            Label1.Text += "Location where saved: " + 
               filepath + "\\" + 
               System.IO.Path.GetFileName(userPostedFile.FileName) + "";
         }    
      } 
      catch (Exception Ex)
      {    
         Label1.Text += "Error: " + Ex.Message;    
      }    
   }    
}

				
		

在网页上动态生成控件的方法如下:

      <SCRIPT language=JavaScript>
             function addFile() 
             { 
                    var str = '<INPUT type="file" size="50" NAME="File">' 
                    document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str) 
             } 
      </SCRIPT>
      <P id="MyFile"><INPUT type=file size=50 name=File></P>
      <INPUT onclick=addFile() type="button" value="增加">
      <asp:button id=UploadButton text="开始上传" runat="server"></asp:button>

只有注册用户登录后才能发表评论。