控制器代码:
public ActionResult FileUpload() { //1.获取文件信息 HttpPostedFileBase file = Request.Files["file"]; //2.判断文件大小,扩展名(可以用js实现) if (file.ContentLength > 1048576) { //xxxxxxxxx } //2.判断文件类型 if (file.ContentType != "mages/png" || file.ContentType != "image/gif") { //xxxxxxxxx } if (file.FileName != null) { string serverPath = HttpContext.Server.MapPath("../Content/img"); //2.判断文件目录是否存在 if (!Directory.Exists(serverPath)) { Directory.CreateDirectory(serverPath); } string filePath = Path.Combine(serverPath, Path.GetFileName(file.FileName)); file.SaveAs(filePath); return View("Index"); } else { return View(); } }
这个一句HttpPostedFileBase file = Request.Files["file"];
当我的客户端上传的是 jpg txt rar的时候可以获取到(容量比较小)
当我上传一个1g多的iso文件后缀的就报错了 提示null 请问大侠这个怎么修改呢?
还有这个代码js判断文件大小是我在网上找的 我看好多地方用用了
function CheckFileSize() { var FileMaxSize = 1000;//限制上传的文件大小,单位(k) var s = document.getElementById("file").value; var img = new Image(); img.src = document.getElementById("file").value; if (img.fileSize > FileMaxSize * 1024) { alert("The file size exceeds " + FileMaxSize + "K,please choose a smaller one!"); return false; } }
img.fileSize根本就没有这个属性 我利用火狐看了 难道没有测试吗?
谢谢各位的回答我知道了!
超大文件,例如1G以上的文件不建议使用网页上传,应该提供专用的上传工具,ftp等等。其实上百MB的上传都是不太赞成的。一楼说到的swfupload插件很好用。你不妨试试。
1G文件绝对不可能用这个方式来传送了。
那怎么写啊 呵呵
@s_p: 看下这个 swfupload
JS判断大小只是针对图片。
上传1G的默认根本就到不了你的Action,直接报错。
啥?
1个G的文件,你就想
file.SaveAs(filePath); 就完了?额滴神啊
那怎么写啊 呵呵