如何使用普通的旧式<input type="file" />
获取ASP.net web表单(v3.5)以发布文件
我对使用ASP.net FileUpload服务器控件不感兴趣。
发布于 2009-02-20 13:47:37
在您的aspx中:
<form id="form1" runat="server" enctype="multipart/form-data">
<input type="file" id="myFile" name="myFile" />
<asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>
在后台代码中:
protected void btnUploadClick(object sender, EventArgs e)
{
HttpPostedFile file = Request.Files["myFile"];
//check file was submitted
if (file != null && file.ContentLength > 0)
{
string fname = Path.GetFileName(file.FileName);
file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
}
}
发布于 2013-10-09 18:35:30
这是一个不依赖于任何服务器端控件的解决方案,就像OP在问题中所描述的那样。
客户端HTML代码:
<form action="upload.aspx" method="post" enctype="multipart/form-data">
<input type="file" name="UploadedFile" />
</form>
upload.aspx的Page_Load方法:
if(Request.Files["UploadedFile"] != null)
{
HttpPostedFile MyFile = Request.Files["UploadedFile"];
//Setting location to upload files
string TargetLocation = Server.MapPath("~/Files/");
try
{
if (MyFile.ContentLength > 0)
{
//Determining file name. You can format it as you wish.
string FileName = MyFile.FileName;
//Determining file size.
int FileSize = MyFile.ContentLength;
//Creating a byte array corresponding to file size.
byte[] FileByteArray = new byte[FileSize];
//Posted file is being pushed into byte array.
MyFile.InputStream.Read(FileByteArray, 0, FileSize);
//Uploading properly formatted file to server.
MyFile.SaveAs(TargetLocation + FileName);
}
}
catch(Exception BlueScreen)
{
//Handle errors
}
}
发布于 2009-02-20 13:39:17
必须将form
的enctype
属性设置为multipart/form-data
;然后才能使用HttpRequest.Files
集合访问上传的文件。
https://stackoverflow.com/questions/569565
复制相似问题