所以我试图设置上传大小限制,但它没有成功。 我已经将代码包含在解释中,请大家看看,如果你能帮助我,我会非常感激。 关于我需要帮助的更多信息是在“//”之后 这是代码:`
<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> `
非常感谢:)
答案 0 :(得分:0)
要在文件太大时转到其他页面,您可以将新网址指定给document.location
。请注意,URL应该是绝对的(即http://.../email.html
)。
我建议在文件太大而不提交页面时显示错误。否则,用户将看到新页面,并相信一切都很好。
另请注意,您需要在服务器上执行相同的检查,因为攻击者可能只是从头开始创建POST请求(不使用页面中的代码)将任意大小的文件发送到您的服务器。
答案 1 :(得分:0)
因为onchange内部的功能不是全局的。它仅适用于onchange。
需要将其更改为
window.sub = function (obj){return true; }
但是这个缺陷是用户可以第二次更改文件并提交,因为你刚刚删除了返回false。您可以将其添加回else,也可以在提交表单时进行验证,而不是更改。