mvc如何异步检测文件类型和文件大小呢?

我用$.post()从后台获取Request.Files[uploadControlName]为null,为啥呢。应该怎么异步检测文件类型和大小呢?不需要上传,只要检测好... 我用$.post()从后台获取Request.Files[uploadControlName]为null,为啥呢。应该怎么异步检测文件类型和大小呢?不需要上传,只要检测好了 展开
 我来答
yixinyq
2014-01-13 · 知道合伙人软件行家
yixinyq
知道合伙人软件行家
采纳数:189 获赞数:752

向TA提问 私信TA
展开全部

文件你还是要上传的,存到内存里,不保存到物理硬盘就行。上传的[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);
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式