我有一个type = file的输入。这用于上传图像。现在我想将图像大小限制为500 kb并仅键入.png。请帮忙
答案 0 :(得分:0)
单凭javascript无法实现这一点,因为它无法访问本地文件系统,无法在上传之前检查文件大小。
解决方法是使用Flash,它具有本地文件访问权限,或检查服务器端的文件,但这并不理想,因为它仍然意味着可以在检查文件大小之前上载大文件有效性。
答案 1 :(得分:0)
我认为您不能使用javascript限制文件大小,对于文件扩展名,您可以执行以下操作:
var ext = $('#my_file_field').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['png']) == -1) {
alert('invalid extension!');
}
答案 2 :(得分:0)
我认为这必须在服务器端完成。我不相信你可以在jQuery中检测文件上传的大小。这是因为JavaScript无法访问本地文件系统。
答案 3 :(得分:0)
尝试:
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
指定的值是通过此表单上传的最大允许KB。值100000将允许文件高达100kb。
但是,这是HTML并且可以绕过,您仍然需要进行PHP / Server Side验证,如:
IF($_FILES['file']['size'] > 500000){// show error}
在php中,大小值以字节为单位
您可以检查$ _FILES ['file'] ['type'],将其限制为仅限png文件,例如:
IF($_FILES['file']['type'] != "image/jpeg"){// show error}
答案 4 :(得分:0)
试试这个:
var myFSO = new ActiveXObject("Scripting.FileSystemObject");
var filepath = document.upload.file.value;
var thefile = myFSO.getFile(filepath);
var size = thefile.size;
var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
if(ext=="png" && size=500000)
return true;
else
alert("invalid filetype or size greater than 500kb");