首页 新闻 会员 周边

如何通过javascript获得本地文件大小的

0
悬赏园豆:50 [待解决问题]

ie下好像有安全性问题,用fso或者activex都不怎么合适,flash也很麻烦,在模态窗口中像uploadfy.js这类型的上传插件都用不了,有人又其它办法吗?

legend_zm的主页 legend_zm | 初学一级 | 园豆:104
提问于:2012-12-06 16:01
< >
分享
所有回答(10)
0

应该没有,游览器没有这么大的权限

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-06 16:02

那像163邮箱,qq邮箱是怎么做到的?

支持(0) 反对(0) legend_zm | 园豆:104 (初学一级) | 2012-12-06 16:04

@legend_zm: 163没有做到,QQ邮箱是做到了,大附件上传组件,太漂亮了

支持(0) 反对(0) happydaily | 园豆:301 (菜鸟二级) | 2012-12-06 17:25
0

JS无法获取本地文件属性,权限不够。

如果可以的话上网还有什么安全可言,随便在网页上放个js就把你电脑中的岛国片共享了

163通过flash实现,QQ通过浏览器插件实现

卒子 | 园豆:588 (小虾三级) | 2012-12-06 16:11
0

js参考:

var ImgObj = new Image();
var right_type = new Array(".gif", ".jpg", ".jpeg", ".png", ".bmp");

function ChangeSrc(idImg) {
if (!CheckImgType(idImg)) {
alert("File format is not correct");
return false;
}
var ImgObj = new Image();
ImgObj.src = idImg;
if (!CheckFileSize()) {
return false;
}
return true;
}

/**
判断上传文件格式是否正确
*/
function CheckImgType(fileURL) {
//本程序用来验证后缀,如果还有其它格式,可以添加在right_type;
var right_typeLen = right_type.length;
var imgUrl = fileURL.toLowerCase();
var postfixLen = imgUrl.length;
var len4 = imgUrl.substring(postfixLen - 4, postfixLen);
var len5 = imgUrl.substring(postfixLen - 5, postfixLen);
for (i = 0; i < right_type.length; i++) {
if ((len4 == right_type[i]) || (len5 == right_type[i])) {
return true;
}
}

return false;
}

/**
判断要上传的图片文件大小、长度和宽度!
*/
function CheckFileSize() {
var limit = 300 * 1024;
var width = 500;
var height = 500;

if (ImgObj.fileSize > limit) {
alert("File size is too large!");
return false;
}

if (ImgObj.height > height) {
alert("File height is larger than 500px!");
return false;
}

if (ImgObj.width > width) {
alert("File width is larger than 500px!");
return false;
}
return true;
}

刀叨 | 园豆:217 (菜鸟二级) | 2012-12-06 16:24

这种方式子在ie里是不行的,权限问题

支持(0) 反对(0) legend_zm | 园豆:104 (初学一级) | 2012-12-06 16:28

@legend_zm: 我的例子就是在IE里面执行的

支持(0) 反对(0) 刀叨 | 园豆:217 (菜鸟二级) | 2012-12-06 16:51
0

上传到服务器取大小,用HttpWorkerRequest,获取文件头中的文件大小后直接返回。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-12-06 16:31

需要在前端获取,后台就容易了

支持(0) 反对(0) legend_zm | 园豆:104 (初学一级) | 2012-12-06 16:35

@legend_zm: 

前台当然不行啦,需要用插件或后台获取,我说的后台是指通过HttpWorkerRequest上传文件头获取大小,不需要上传整个文件。

支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-12-06 16:44
0

为了安全考虑,好像是不行。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-12-06 16:33
0

放弃吧,javascript 没有这种权限。

geass.. | 园豆:1821 (小虾三级) | 2012-12-06 21:38
0

163通过flash实现,QQ通过浏览器插件实现

jason2013 | 园豆:1998 (小虾三级) | 2012-12-07 08:49
0

如果能获取不是太危险了?

顾晓北 | 园豆:10844 (专家六级) | 2012-12-07 09:03
0

图片的可以获取,其他文件没有试过

az235 | 园豆:8483 (大侠五级) | 2012-12-07 09:46
0

他们都是flash

undefined | 园豆:898 (小虾三级) | 2012-12-10 14:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册