mvc如何异步检测文件类型和文件大小呢?
我用$.post()从后台获取Request.Files[uploadControlName]为null,为啥呢。应该怎么异步检测文件类型和大小呢?不需要上传,只要检测好...
我用$.post()从后台获取Request.Files[uploadControlName]为null,为啥呢。应该怎么异步检测文件类型和大小呢?不需要上传,只要检测好了
展开
1个回答
展开全部
文件你还是要上传的,存到内存里,不保存到物理硬盘就行。上传的[uploadControlName]为空,我想问的是你确定上传的表单类型是enctype="multipart/form-data"吗?
看看你$.post()里面是否有multipart/form-data类型的表单。
<form action="/File/UploadFile" method="post" enctype="multipart/form-data" >
<input type="file" name="upload" />
</form>
检测文件大小在内存里做,不保存就好,下面给你个例子,可以返回一个文本类型到界面。
public ActionResult UploadFile(string path)
{
try
{
//接受上传文件
HttpPostedFileBase postFile = Request.Files["upload"];
if (postFile != null)
{
//获取上传目录 转换为物理路径
string uploadPath = Server.MapPath(path + "/");
//文件名
string fileName = postFile.FileName;
//获取文件大小
long contentLength = postFile.ContentLength;
//文件不能大于10M
if (contentLength <= 1024 * 10240)
{
//如果不存在path目录
if (!Directory.Exists(uploadPath))
{
//那么就创建它
Directory.CreateDirectory(uploadPath);
}
//保存文件的物理路径
string saveFile = uploadPath + fileName;
try
{
//保存文件
postFile.SaveAs(saveFile);
}
catch
{
;
}
}
else
{
//文件大小超过10MB";
}
}
else
{
//"文件大小超过10MB";
}
}
catch (Exception e)
{
//"上传文件失败";
}
return Redirect(Request.UrlReferrer.AbsoluteUri);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询