如何让用户知道他们提交的简历太大了

时间:2014-08-01 05:12:53

标签: asp.net-mvc file-upload

我上传的cshtml文件,javacsript将在哪里进入此文件?

@{
ViewBag.Title = "Upload";
}

<div id="progressbar">
<div id="progressbar" class="all-rounded" style="width: 20%"><span></span></div>
</div>

<div class="jumbotron">

<h2>Job Application Management System</h2>
<p class="lead2"> Welcome @((string)(ViewData["FullName"])), Please upload your resume here. Thank  you!</p>
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype =     "multipart/form-data" }))
{
<table>
    <tr>
        <td> <label> &nbsp; </label> <input type="file" class="btn btn-default"   name="File"     id="File" /></td>
    </tr>
    <tr>
        <td><input type="submit" class="btn btn-default" id="upload" value="Upload" /></td>
    </tr>
</table>
if (TempData["notice"] != null)
{
    <p>@TempData["notice"]</p>
    <p><button class="btn btn-default" onclick="location.href='@Url.Action("Create", "Accomplishments")';return false;">Continue To Accomplishments</button></p>
}
}

这是我的工作代码,显示如何接受简历并使用asp.net mvc保存 如果用户提交无法处理的文件,如何发布错误消息,指出文件大小太大。现在,如果用户提交的文件太大,则会将其带到错误页面。我只是想在屏幕上弹出一个弹出窗口,告诉他们提交一个较小的文件。谢谢!

            if (resume.File.ContentLength > 0)
            {
                string fileName = Path.GetFileName(resume.File.FileName);
                string path = Path.Combine(Server.MapPath("~/Content/Resumes"), fileName);
                resume.File.SaveAs(path);
            }
            TempData["notice"] = "Resume Added:  "+ resume.File.FileName;
            return View(resume);


        }
        catch (Exception)
        {
            ViewBag.Message = "Upload Error";
            return View("Upload");
        }
    }

1 个答案:

答案 0 :(得分:0)

您可以使用简单的javascript执行此操作:

 <script type="text/javascript">
  $('#image-file').on('change', function() {
   var filesize = this.files[0].size/1024/1024).toFixed(2) + " MB");
   //Now can use use filesize variable and check it's value and show pop.
  });
</script>

或者您可以使用此:

function GetFileSize(fileid) {
try {
    var fileSize = 0;
    //for IE
    if ($.browser.msie) {
        //before making an object of ActiveXObject, 
        //please make sure ActiveX is enabled in your IE browser
        var objFSO = new ActiveXObject("Scripting.FileSystemObject"); var filePath = $("#" + fileid)[0].value;
        var objFile = objFSO.getFile(filePath);
        var fileSize = objFile.size; //size in kb
        fileSize = fileSize / 1048576; //size in mb 
    }
        //for FF, Safari, Opeara and Others
    else {
        fileSize = $("#" + fileid)[0].files[0].size //It will calculate file size in kb

         // Put Your Alert or Validation Message Here


    }

}
catch (e) {
    alert("Error is :" + e);
}
}

或者您可以在表单上检查文件大小提交为:

 <script type="text/javascript">
  $(document).ready(function(){
  $('#upload').on('click', function(e) {
   e.PreventDefault();
   var filesize = $("#File").files[0].size/1024/1024).toFixed(2));  //filesie in MB
   //Now can use use filesize variable and check it's value and show pop.
    if(parseInt(filesize)>3){ alert("File too large");return false; }
    else{ $("form").submit(); }
  });
 });
</script>