文件上传界面既可以用Html的input file控件,又可以用FileUpload控件,只要将Html的input file控件加上runat="server",就会发现两者的功能完全是一模一样,上传的代码是共用的,不需要做任何改变。我想微软在将Html控件将成标准控件时应该只是多加了runat="server"吧。放入上述两者的任一控件后,添加一个标准的Button按钮(Html按钮也行,不过需要加上runat="server"),双击Button按钮,产生点击事件。在点击事件中写入以下代码:
首先检查是否已经选了文件
if (this.myFile.PostedFile != null)
{
检查文件根目录是否存在,不存在就要创建
if (!System.IO.Directory.Exists(Server.MapPath("~")+@"/photoes"))
{
System.IO.Directory.CreateDirectory(Server.MapPath("~")+@"/photoes");
}
此处Server.MapPath("~")用来表示项目根目录的物理路径。
接下来创建用户文件夹,根据用户ID创建
if(!System.IO.Directory.Exists(Server.MapPath("~")+@"/photoes/"+userID))
{
System.IO.Directory.CreateDirectory(Server.MapPath("~")+@"/photoes/"+userID)
}
string orignalName = this.myFile2.PostedFile.FileName;//获取客户机上传文件的路径
int lastdotlocation = orignalName.LastIndexOf(".");
string extendName = orignalName.Substring(lastdotlocation);//获取扩展名
if (extendName != ".gif" && extendName != ".jpg" && extendName != ".jpeg" && extendName != ".png")
{
Response.Write("Wrong format");
Response.End();
}//检查文件格式
string newName = DateTime.Now.Millisecond.ToString() + "_" + myFile2.PostedFile.ContentLength.ToString() + extendName;//对文件进行重命名
myFile.PostedFile.SaveAs(Server.MapPath("~") + @"/photoes/" +userID+@"/"+ newName);
}