作者adamp3 (Boston's 10th Man.)
看板Ajax
标题Re: [问题] 上传图片限制图片尺寸
时间Mon Nov 23 14:18:20 2009
如果你需要在前端就对图片尺寸、档案大小作判断
可以试着用YUI uploader来处理
http://developer.yahoo.com/yui/uploader/
API documentation
http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html
它用的方法是盖一个flash在input file栏位上
所以当你点下"浏览/browse"的时候 他其实是call一支flash
由於AS可以跟JS沟通 你可以拿到你想要的资讯
另外它也把一些可能会用到的event设定好了(ex: uploadStart, uploadError)
基本上是满方便的 可以帮你解决不少在前端判断的问题
但前後端都要判断才是正确的作法
js是做不到这些的 因为存取local档案安全性已经超出浏览器的权限了...
※ 引述《l9girl (angel girl)》之铭言:
: 我以前写的,同时检查图片副档名,图档长宽和图档大小,
: function ClientVI(source, arguments)
: {
: var re = /\.(jpg|gif|jpeg|bmp)$/; //允许的图片副档名
: var objImg = new Image();
: objImg.src = arguments.Value;
: if (!re.test(arguments.Value.toLowerCase())
: || objImg.width != 你限的宽
: || objImg.height != 你限的高
: || objImg.fileSize > 你限的大小)
: {
: arguments.IsValid=false;
: //再加一个if是因为我以前在run时怪怪的,
: //有时会抓不到长宽大小,就让它再run自己一次喽
: if (re.test(arguments.Value.toLowerCase())
: && (objImg.width==0
: || objImg.height==0
: || objImg.fileSize==0))
: ClientVI(source, arguments);
: }
: else
: {
: arguments.IsValid=true;
: }
: }
: 然後在ajax元件:CustomValidator
: 呼叫就可以了
: (ClientValidationFunction="ClientVI"
: ControlToValidate="FileUpload1"
: ErrorMessage="图片格式错误" )
: ※ 引述《lanlove (小小程式助理)》之铭言:
: : 请教各位大大
: : 小妹我想要做一个功能是
: : 我在上资料的页面中有一个上传图档的功能,
: : 想要在选择好要上传时,
: : 就能先做筛选提醒使用者图档大小不符无法上传。
: : 但因小妹我还是个程式新鲜人,
: : 不是很清楚该怎麽写,
: : 请教各位大大该如何写才对。
--
○-
.∫
︻〔 我的二十岁/四十天美国自助旅行全记录+球场观察
║ 》
睡过车站 机场 还有旅舍交谊厅
║ 八座城市 七场大联盟球赛
http://adamp3.myweb.hinet.net/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.83.216.112
1F:→ cassatte:要Flash Player 10以上才可以读取或判断本地端档案 11/23 19:24
2F:→ adamp3:总之不失为一种方法给原po参考啦 11/23 21:22
3F:→ cassatte:我提醒一下而已 XD 之前也是看到这个,很高兴 11/23 21:47
4F:→ cassatte:Flash也要灌CS4版才能用的样子 11/23 21:47
5F:→ cassatte:我是说要自己写的话..FileReference的新方法 11/23 21:48