input type="file" 文件上传 multipart/form-data 取不到值 asp.net
Posted on 2011-10-11 13:53 Honor 阅读(891) 评论(0) 收藏 举报asp.net控件“FileUpload”,因为用服务器端控件灵活性不好。用客户端控件<input type="file" name="fileUpload" id="fileUplaod" >.
用客户端控件时要注意:
首先<form/>的属性一定要设成:enctype="multipart/form-data";
其次<input type="file" name="xxxxxxx"/>一定不要忘记“name”属性。否则在后台代码中用Request.Files是取不到值得!
具体代码如下:
前台代码:
<form id="form1" action="FileUpload.aspx" method="post" enctype="multipart/form-data">
<div>
<input id="File1" type="file" name="File1"/>
<input id="Submit1" type="submit" value="上传" />
</div>
</form>
后台代码:
System.Web.HttpFileCollection files = Request.Files;
for (int fileCount = 0; fileCount < files.Count; fileCount++)
{
System.Web.HttpPostedFile postedfile = files[fileCount];
string fileName = System.IO.Path.GetFileName(postedfile.FileName);
if (!String.IsNullOrEmpty(fileName))
{
string fileExtension = System.IO.Path.GetExtension(fileName); //获取文件类型
//上传目录
string directory = Server.MapPath("/UpLoadFiles/");
//文件全路径
string path = directory + fileName;
//判断目录是否存在
if (!Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
//文件存在就删除文件
if (File.Exists(path))
{
File.Delete(path);
}
//上传到服务器的路径
postedfile.SaveAs(path);
}
}
浙公网安备 33010602011771号