周四又整那个网站呢,遇到一个问题,就是要限制用户上传图片的大小,如果太大的话,比如超过300K之后就弹出提示窗口。

一开始觉得还挺简单的,而且想到了两个思路,一个是在前台检验,用js或者html5;另一个是在后台检测,php似乎也有类似的函数可以实现。但在网上搜了一下,很多例子都用不了,而且还有各种浏览器兼容的问题,考虑到我们已经鼓励用户用Chrome和Firefox了,而且如果传到后台再检测其实是拿不到文件的,因为在前台现限制了大小。于是只能用前台检测方法了,最后决定用这个:

1
2
3
4
5
6
7
8
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
if(files[0].size<400000){
alert("文件大小超过300k!请重新选择!");
}
else{}
}
document.getElementById('thepic').addEventListener('change', handleFileSelect, false); //其中thepic里填写需要的标签id

1
<input type="file" id="thepic" multiple>

经过测试可用。