作者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