iT邦幫忙

0

圖片上傳檢查:把檔案大小與解碼後尺寸分開記錄

  • 分享至 

  • xImage
  •  

有些上傳元件只顯示「圖片太大」的錯誤訊息。這句話可能指檔案位元組數超過限制,也可能指解碼後的寬度或高度太大。兩種限制要分開檢查,回報時才說得清是哪一道檢查擋下圖片。

在使用者選好圖片後,可以先讀取 File.size。它回報的是檔案的位元組數。若規格寫的是 2 MiB,門檻就是 2 × 1024 × 1024 位元組。前端若顯示同一個門檻,記得讓單位跟後端一致。

尺寸檢查要等圖片解碼成功,再讀解碼結果的寬高。若規格限制長邊,拿寬度與高度中較大的值和上限比較。解碼失敗時,回報無法讀取圖片。沒有可用的寬高時,尺寸檢查應保持未完成。

測試資料可以準備三份:一份超過位元組門檻但像素尺寸合格、一份檔案小但長邊超標,再加一份無法解碼的檔案。確認每份檔案觸發各自的訊息。測試時也記錄限制套用在原始圖片還是縮圖,因為同一張圖在不同階段會有不同尺寸。

前端的檢查可以提前提供回饋。如果圖片還要上傳,伺服器端仍應對實際收到的檔案做相應檢查。記錄錯誤時附上檢查階段、測得數值與門檻,讓開發者能重現是哪一條規則拒絕檔案。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言