yet

Dream Will Come True

 

第一贴:ASP.NET中的文件上传

上传单一的文件HTML页面:
<form enctype="multipart/form-data" runat="server">
        <input id="File1" type="file" runat="Server" />
        <p>
            <input id="Submit1" type="submit" value="Upload File"
             runat="Server" onserverclick="SubmitButton_Click" />
        </p>
        <span id="Span1" runat="Server" />
        <p>
            <asp:RegularExpressionValidator
             id="RegularExpressionValidator1" runat="server"
             ErrorMessage="Only mp3, m3u or mpeg files are
             allowed!" ValidationExpression="^(([a-zA-
             Z]:)|(\\{2}\w+)\$?)(\\(\w[\w
             ].*))+(.mp3|.MP3|.mpeg|.MPEG|.m3u|.M3U)$"
             ControlToValidate="File1">
            </asp:RegularExpressionValidator>
            <br />
            <asp:RequiredFieldValidator
             id="RequiredFieldValidator1" runat="server"
             ErrorMessage="This is a required field!"
             ControlToValidate="File1">
            </asp:RequiredFieldValidator>
        </p>       
    </form>
需要注意的是form里面的enctype="multipart/form-data"。
SubmitButton_Click激发事件
 void SubmitButton_Click(Object sender, EventArgs e) {
       if (File1.PostedFile != null) {
          try {
             File1.PostedFile.SaveAs("C:\\Uploads\\uploadedfile.txt");
             Span1.InnerHtml = "Upload Successful!";
          }
          catch (Exception ex) {
             Span1.InnerHtml = "Error saving file <b>C:\\" +
                File1.Value + "</b><br>" + ex.ToString();
          }
       }
    }
只是实现很简单的文本文件上传。至于上传其他文件都是很容易的。
多份文件一起上传HTML页面:
  <form enctype="multipart/form-data" runat="server">
        <p>
            Select File1:<br />
            <input id="File1" type="file" runat="Server" />
            <br />
            Select File2:<br />
            <input id="File2" type="file" runat="Server" />
            <br />
            Select File3:<br />
            <input id="File3" type="file" runat="Server" />
            <br />
            Select File4:<br />
            <input id="File4" type="file" runat="Server" />
        </p>
        <p>
            <input id="Submit1" type="submit" value="Upload Files"
             runat="Server" onserverclick="SubmitButton_Click" />
            <br />
        </p>
        <span id="Span1" runat="Server"></span>
    </form>
后台:
protected void SubmitButton_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 )
             {
                Span1.InnerHtml += "<u>File #" + (i+1) +
                   "</u><br>";
                Span1.InnerHtml += "File Content Type: " +
                   userPostedFile.ContentType + "<br>";
                Span1.InnerHtml += "File Size: " +
                   userPostedFile.ContentLength + "kb<br>";
                Span1.InnerHtml += "File Name: " +
                   userPostedFile.FileName + "<br>";
   
                userPostedFile.SaveAs(filepath + "\\" +
                   Path.GetFileName(userPostedFile.FileName));
   
                Span1.InnerHtml += "Location where saved: " +
                   filepath + "\\" +
                   Path.GetFileName(userPostedFile.FileName) +
                   "<p>";
             }   
          }
          catch (Exception Ex)
          {   
             Span1.InnerText += "Error: <br>" + Ex.Message;   
          }   
       }   
    }
其实文件上传是很简单的,只要获得客户端要保存的文件路径,然后调用SaveAs方法就可以完成!

posted on 2005-07-04 20:03  yet  阅读(311)  评论(0编辑  收藏  举报

导航