我需要 php
来使用 javascript...:|
我希望用户只上传最大 5MB 的文件,但 PHP
仅在上传完成后检测到它...
示例:
if ($_FILES["ftu"]["size"] > 5242880) {
echo "<br /><font color='#FF4747'>Sorry, but maximum size of the uploaded file must not exceed 5MB</font>";
}
它有效,但只有在文件实际上传后才会回显...我不想要它... 另一种选择是使用 javascript 检查它:
$(document).ready(function(){
$('#upheadinp').bind('change', function() {
if(this.files[0].size > 5242880){
$('#uploadspan').html("<font color='#FF4747'>Max file size is 5MB</font>");
}
});
});
是的,这也有效,但它只是为了显示错误消息...
我如何将 php if function
与此 javascript 函数
合并?
我的期望是这样的:
<?php
if("<script>(this.files[0].size)</script>" > 5242880){
echo "error";
}
?>
有人能帮帮我吗?谢谢!
最佳答案
上面的评论显然是正确的。 JS是客户端脚本,PHP是服务器端。由于显而易见的原因,两者不直接互动。
最好的解决方案是阻止表单提交。这将实现我所解释的你正在寻找的东西。除了 PHP 预防之外,还有一种防止某人提交的方法。正确的编程约定将规定任何用户提交的数据(文本、上传等)都应在客户端和服务器端进行验证。永远不要相信客户数据,也永远不要假设它已经过正确验证。
$("theformyouareusing").submit(function(e) {
if($('input[type=file]').files[0].size > 5242880){
e.preventDefault();
}
});
您可能还想检查不支持 .files.size
的旧浏览器,并决定如何处理这些情况。
为了额外的安全,您应该将这些行添加到您的 php.ini 中:
post_max_size = 5M
upload_max_filesize = 5M
关于javascript - 上传前显示文件大小...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173573/