我需要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 function
合并?
我的期望如下:
<?php
if("<script>(this.files[0].size)</script>" > 5242880){
echo "error";
}
?>
有人可以帮帮我吗?谢谢!
答案 0 :(得分:2)
以上评论显然是正确的。 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