我正在使用< input type =“file”/>标记以将文件上载到服务器.如何在服务器端访问该文件并将其存储在服务器上? (该文件是图像文件)
客户端代码是:
<form id="form1" action="PhotoStore.aspx" enctype="multipart/form-data"> <div> <input type="file" id="file" onchange="preview(this)" /> <input type="submit" /> </div> </form>
Photostore.aspx.cs有
protected void Page_Load(object sender,EventArgs e) { int index = 1; foreach (HttpPostedFile postedFile in Request.Files) { int contentLength = postedFile.ContentLength; string contentType = postedFile.ContentType; string fileName = postedFile.FileName; postedFile.SaveAs(@"c:\test\file" + index + ".tmp"); index++; } }
解决方法
您需要添加id和runat =“server”属性,如下所示:
<input type="file" id="MyFileUpload" runat="server" />
然后,在服务器端,您将可以访问控件的PostedFile
属性,该属性将为您提供ContentLength
,ContentType
,FileName
,InputStream
属性和SaveAs
方法等:
int contentLength = MyFileUpload.PostedFile.ContentLength; string contentType = MyFileUpload.PostedFile.ContentType; string fileName = MyFileUpload.PostedFile.FileName; MyFileUpload.PostedFile.Save(@"c:\test.tmp");
或者,您可以使用Request.Files
,它为您提供所有上传文件的集合:
int index = 1; foreach (HttpPostedFile postedFile in Request.Files) { int contentLength = postedFile.ContentLength; string contentType = postedFile.ContentType; string fileName = postedFile.FileName; postedFile.Save(@"c:\test" + index + ".tmp"); index++; }