【问题标题】:Restrict file uploads so that only files smaller than 1 MB can be uploaded限制文件上传,只允许上传小于 1 MB 的文件
【发布时间】:2013-07-31 21:10:07
【问题描述】:

我在准备 Microsoft Web-Application Developer 考试时遇到了这个问题,

您正在实现一个允许用户将文件上传到 Web 服务器的网页。该页面包括一个 具有提交按钮的表单。 您想限制上传,以便只能上传小于 1 MB 的文件。

给出的答案是:

添加一个 ASP.NET FileUpload 控件并将其配置为在服务器上运行。 将服务器端 OnClick 处理程序添加到表单的提交按钮以仅在文件大小为 允许

但这不是意味着文件已经上传到服务器了吗?我们只是选择是否保存它?可以在客户端完成吗?

【问题讨论】:

标签: c# asp.net asp.net-4.0


【解决方案1】:

在进行文件上传时,您可以检查许多事项。在服务器端,还有最大请求大小,这实际上会停止上传。但你是对的,在这些检查中的任何一个被捕获时,上传就已经执行了。

您现在可以在支持的浏览器上使用 HTML5 File API 来更智能地上传文件,包括在客户端检索文件的大小,甚至显示预览。示例见此处:Client Checking file size using HTML5?

【讨论】:

    【解决方案2】:

    使用 IE:

    <html>
    <head>
    <script>
    function getSize()
    {
        var myFSO = new ActiveXObject("Scripting.FileSystemObject");
        var filepath = document.upload.file.value;
        var thefile = myFSO.getFile(filepath);
        var size = thefile.size;
        alert(size + " bytes");
    }
    </script>
    </head>
    <body>
    <form name="upload">
    <input type="file" name="file">
    <input type="button" value="Size?" onClick="getSize();">
    </form>
    </body>
    </html>
    

    使用 Chrome 或 Firefox: 随着 jQuery 和 HTML5 File API 规范的实现,您可以使用这个简单的 sn-p 来访问文件属性,例如大小:

    //binds to onchange event of your input field
    $('#myFile').bind('change', function() {
        alert(this.files[0].size);
    });
    

    来源:关于该主题的优秀文章:http://www.kavoir.com/2009/01/check-for-file-size-with-javascript-before-uploading.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 2012-03-14
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多