.NET中的FileUpload控件能够提供熟悉的通过浏览选择文件上传。
FileUpload fileUpload;
string savePath="~~~"; //此处输入要交上传文件保存的路径
string fileName=savePath+fileUpload.FileName; //设置完整文件名称
fileUpload.SaveAs(fileName); //将文件保存在指定路径,并以原文件名保存
到此文件就已保存在了指定位置,通常可以选择某些不重复的文件命名方式,如将文件保存为时间等来区分文件。
以下为msdn:
-
向页面添加 FileUpload 控件。
出于安全方面的考虑,不能将文件名预加载到 FileUpload 控件中。
-
在事件(如该页的 Load 事件)的处理程序中,执行下面的操作:
-
通过测试 FileUpload 控件的 HasFile 属性,检查该控件是否有上载的文件。
-
检查该文件的文件名或 MIME 类型以确保用户已上载了您要接收的文件。若要检查 MIME 类型,请获取作为 FileUpload 控件的 PostedFile 属性公开的 HttpPostedFile 对象。然后,通过查看已发送文件的 ContentType 属性,就可以获取该文件的 MIME 类型。
在某些情况下,已上载文件的 MIME 类型可能是伪造的,因此只检查文件的 MIME 类型不是一种可靠的安全检查。
-
将该文件保存到您指定的位置。您可以调用 HttpPostedFile 对象的 SaveAs 方法。或者,还可以使用 HttpPostedFile 对象的 InputStream 属性,以字节数组或字节流的形式管理已上载的文件。
下面的示例演示如何使用已上载的文件。该代码根据允许的文件扩展名的硬编码列表检查已上载文件的文件扩展名,并拒绝所有其他类型的文件。然后,将该文件写入当前网站的 UploadedImages 文件夹中。用已上载文件在客户端计算机上的文件名保存该文件。由于 HttpPostedFile 对象的 FileName 属性返回该文件在客户端计算机上的完整路径,因此会使用 FileUpload 控件的 FileName 属性。
protected void Page_Load(object sender, EventArgs e) { if(IsPostBack) { Boolean fileOK = false; String path = Server.MapPath("~/UploadedImages/"); if (FileUpload1.HasFile) { String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower(); String[] allowedExtensions = {".gif", ".png", ".jpeg", ".jpg"}; for (int i = 0; i < allowedExtensions.Length; i++) { if (fileExtension == allowedExtensions[i]) { fileOK = true; } } } if (fileOK) { try { FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName); Label1.Text = "File uploaded!"; } catch (Exception ex) { Label1.Text = "File could not be uploaded."; } } else { Label1.Text = "Cannot accept files of this type."; } } }
-