Re: [問題] 想用javascript來對要上傳的檔案做過濾

看板Web_Design作者 (總有曲折)時間20年前 (2004/08/27 13:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《ikkti (巧丁)》之銘言: : ※ 引述《ikkti (巧丁)》之銘言: : : 我寫了一個可以上傳圖片的網頁 : : 而且用javascript來限制user上傳圖片的長寬 : : 但卻不知道為什麼 : : 每次拿一張新的圖片要上傳時 : : 它第一次偵測到的圖片長寬都是0 而導致無法上傳 : : 但是再按一次"上傳" 它就可以偵測到正確的size : : 我所疑惑的是 既然第二次之後都可以正確的偵測到圖片的長寬 : : 表示我的code語法應該是沒有錯的 : : 但為什麼每換一張沒上傳過的圖片 第一次偵測都一定會錯呢? : : 感覺起來也許我忽略了什麼重要的細節@@ : : -- : : ◆ From: 218.163.133.229 : : 推 charto:請提供原始碼 61.66.73.162 08/25 : http://www.cs.ccu.edu.tw/~fcj89u/uploadpic.txt : 檢視這個頁面的原始碼 幫你修改好了, 出問題的地方應該是在於, 當你指定 img.src 時, 電腦還沒有載入好 你就已經請求 width 和 height, 所以會出現等於0 的問題, 所以改成這樣就可以了 不過你這樣子做, 懂的小聰明(或是說看得懂程式的人), 就可以利用其他招數上傳不 符合的圖, 既然你還有後端程式, 建議你後端程式也要加入這種驗證, 至於javascript 的部份要不要留著, 就看你了, 因為這還是有點用, 至少不會讓別人白上傳, 另外以基 於怕別人白上傳這點, 你可以利用 img.src 的結尾是不是 .jpg 或是 .jpeg 來檢驗是 不是jpeg圖檔, 否則一張圖上傳很久結果又說不行(唉 家裡窮只能用1m), 要是我會氣 炸的...... <script language="JavaScript"> var warning_msg=""; var checkok=1; var img = new Image(); var LIMIT_HEIGHT=475; var LIMIT_WIDTH=360; var warning=""; function loadpic(){ img.src = document.upload_pic.uploadfile.value; } function checkpicture(field) { warning=""; checkok=1; h=img.height; w=img.width; if (field.name == "B1") { if (h < LIMIT_HEIGHT) { checkok=0; warning+="照片高度不符合規定!\n"; } if (w < LIMIT_WIDTH) { checkok=0; warning+="照片寬度不符合規定!\n"; } if (h < w) { checkok=0; warning+="照片高度小於寬度!\n"; } if(checkok==1) { return true; }else { alert(warning); return false; } } } </script> <form method="post" enctype="multipart/form-data" name="upload_pic" > <input type="file" name="uploadfile" onchange="loadpic()"><br> <input type="submit" value="開始上傳" name="B1" onClick="return checkpicture(this)"> <input type="hidden" name="act" value="check"> </form> -- 嘴角勉強撐起了笑 也要讓你看到最後一絲的驕傲 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.66.73.162

218.163.139.237 08/29, , 1F
相當感謝^_______________^
218.163.139.237 08/29, 1F
文章代碼(AID): #11Bicu3H (Web_Design)
文章代碼(AID): #11Bicu3H (Web_Design)