JavaScript上传大小限制

时间:2014-10-28 12:52:05

标签: javascript

所以我试图设置上传大小限制,但它没有成功。  我已经将代码包含在解释中,请大家看看,如果你能帮助我,我会非常感激。 关于我需要帮助的更多信息是在“//”之后 这是代码:`

     <html>
     <p id="check"></p>

     //ok so this part of <script> sends the user to "email.html" 
     <script type="text/javascript">
     function getFile(){
     document.getElementById("file").click();
     } 
     function sub(obj){
     var file = obj.value;   

     document.myForm.submit();  
     } 

          </script> 

//这是上传文件按钮的代码(或我的情况下的图像)

 <form action="e-mail.php" method="post" enctype="multipart/form-data" name="myForm">  
     <div id="yourBtn" onclick="getFile()">Yes</div>  
     <div style="text-align: center; overflow: hidden;">
      <input type="file" value="upload" id="file" accept="image/*"                       
       onchange="sub(this)"                                 
       size="1"    style="margin-top: -50px;" "margin-left:-410px;" "-moz-opacity: 0;  
                  "filter: 
      alpha(opacity=0);"      "opacity: 0;" "font-size: 150px;" "height: 100px;">

     </div>
      </form> 




      <script> 
      var attachement = document.getElementById('file');
       attachement.onchange = function() {
      var file = attachement.files[0];
      if (file.size < 1000000) {       

    function sub(obj){return true; } 

//好的,这就是问题,  当我在之间包含此代码时 “脚本”不会占用用户 到“e-mail.html”了...请帮助!!!

    else { return false;} 
     } 

     }
     </script>
    </html> `

非常感谢:)

2 个答案:

答案 0 :(得分:0)

要在文件太大时转到其他页面,您可以将新网址指定给document.location。请注意,URL应该是绝对的(即http://.../email.html)。

我建议在文件太大而不提交页面时显示错误。否则,用户将看到新页面,并相信一切都很好。

另请注意,您需要在服务器上执行相同的检查,因为攻击者可能只是从头开始创建POST请求(不使用页面中的代码)将任意大小的文件发送到您的服务器。

答案 1 :(得分:0)

因为onchange内部的功能不是全局的。它仅适用于onchange。

需要将其更改为

window.sub = function (obj){return true; } 

但是这个缺陷是用户可以第二次更改文件并提交,因为你刚刚删除了返回false。您可以将其添加回else,也可以在提交表单时进行验证,而不是更改。