要使用控件 - FileUpload
1、如何判断是否选中文件? FileUpload.FileName - 选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.value.length2、如何保存到服务器上? FileUpload.SaveAs("绝对路径");3、如何获得绝对路径?
先编写相对路径 - "UpLoads/abc.txt" 将相对路径映射成绝对路径 - Server.MapPath("UpLoads/abc.txt");4、现在只能上传成为txt文件,并且名字只能是abc,如何保留文件原有的名字和文件类型? "UpLoads/" + FileUpload1.FileName;5、如何防止重名覆盖的问题? "UpLoads/" + Request.Cookies["user"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;6、如何限制选中文件的类型? 限制普通人,给控件添加属性 - accept=".jpg,.png,.jpeg,.txt" 限制找事的:1 document.getElementById("Button1").onclick = function () { 2 var fileName = document.getElementById("FileUpload1").value; 3 4 var name = fileName.substr(fileName.length - 4, 4); 5 var name1 = fileName.substr(fileName.length - 5, 5); 6 if (name != ".jpg" && name != ".png" && name != ".txt" && name1 != ".jpeg") 7 { 8 alert("请选择正确的文件!你要找事儿啊??"); 9 return false;10 } 11 };
7、控制上传文件的大小
扩容 - 系统默认允许最大上传长度是4MB webconfig配置文件中写入百度搜,研究,C#大文件上传,断点续传。
注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!限制大小 C#端限制:if (FileUpload1.PostedFile.ContentLength>(4*1024*1024)){Label1.Text = "文件长度过长!!!";return;}
JS端限制:
var f = document.getElementById("FileUpload1");if (f.files[0].size > (4 * 1024 * 1024)) {alert("文件过大!!!");return false;}
案例:
界面:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 3 4 5 6 7 818 19 209 10 11
后台:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 8 public partial class _Default : System.Web.UI.Page 9 {10 protected void Page_Load(object sender, EventArgs e)11 {12 Button1.Click += Button1_Click;13 }14 15 void Button1_Click(object sender, EventArgs e)16 {17 //若为选择文件18 if (FileUpload1.FileName.Length <= 0)19 {20 Label1.Text = "请选择文件!";21 return;22 }23 //若上传文件大于设置的最大长度24 if(FileUpload1.PostedFile.ContentLength>(4*1024*1024))25 {26 Label1.Text = "文件过大!";27 return;28 }29 //上传路径30 string path = "Uploads" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;31 string endpath = Server.MapPath(path);32 //保存到路径中33 FileUpload1.SaveAs(endpath);34 35 36 }37 }
1 2 3 7 89 10 11 14 1512 13