分享至
<input type="file" className="XXX" id="XXX" onChange={XXX} >
正常操作:選好檔案,把檔案編譯成base64,然後傳給後端
但發現如果選太大的檔案(25MB以上),會再打api時被擋下來,顯示302錯誤,但是如果檔案大小不大(KB),就會成功,目前看起來是瀏覽器預設的,不知道有沒有方法可以忽略限制
已邀請的邦友 {{ invite_list.length }}/5
認真來說,這個鍋你不能給瀏覽器背。它是無辜的。
這是一般SERVER的安全限制。也就是很常見的timeout問題。一般大容量的傳送。最好還是靠form-data的模式傳送。或是步進傳送。
就base64的做法而言。並不會一口氣就傳送。而是切多個區塊步進傳送後。再由後端結合組合。
那請問,如果非得要用這個方法,有辦法關閉SERVER的安全限制嗎?
可。一般調整WEB SERVER的設定及後端語言的引擎設定就好。但~~~要先說清楚一件事。
雖然可以調整安全限制到無限大。但不代表調整上去後就可以達到你要的需求。畢竟那是「安全」限制。也就是說,一但你調高了。也就會有相對不安全因素存在。未來你會有機會面臨比timeout還要可怕的事。
IT邦幫忙