我有頁面,其中我拿着一些圖像的base64表示(大約每個1mb),現在我通過ajax發佈這個數據到服務器(contentType是默認的 - 網址編碼)。這工作正常,如果我有一個或兩個圖像發送,但如果我有超過2MB的請求數據,服務器不接受,請求參數沒有任何東西,所以我增加了我的雄貓maxPostSize ,它也開始接受更多的數據,但是如果這會造成內存問題,我有點擔心,特別是如果我有很多圖像?通過ajax發送大量數據(base64字符串)到服務器
另外我試着將contentType改爲multipart/formdata,但是它出錯了,「說這個請求被拒絕了,因爲沒有找到multipart邊界」。
編輯
我覺得我應該闡述較多,實際上要求是這樣的 - 用戶點擊上傳鏈接,他應該可以上傳文件,那麼他應該能夠看到縮略圖頁面上的圖像(所有這些都不刷新頁面)。我嘗試了以下方法。
- 使用文件閱讀器讀取該文件,顯示縮略圖,然後明確地觸發上傳,當用戶點擊保存,簡單但不跨瀏覽器的,並不在IE瀏覽器
- 允許用戶上傳的文件從服務器發送圖像的base64版本,當用戶單擊保存時,將base64字符串發送回服務器,並將其轉換回字節數組並保存到數據庫。
現在,我有一個屏幕,其中所有的記錄默認是可編輯的,所以點擊保存就意味着將所有記錄的圖像字符串發送到服務器,這將導致內存問題。
「3」。尚未實現,但首先保存其他領域(非圖像領域),然後明確地保存一個接一個的圖像(看起來沒問題,但請求數量會很高)
等待某人建議第4個方法,希望我已經解釋夠
這是一個非常難以回答的問題 - 你的服務器有多少內存?使用了多少?爲什麼不建立一個測試平臺來緩存內存使用情況/ CPU,然後發佈不同的內容以查看會發生什麼?如果你的機器有一個內存TB和1000個16核心CPU,那麼這可能是好的。如果它是一個月共享5美元的主機,那麼它可能不是。只有你可以通過測試回答這個問題。 –
根據任何「上傳」功能,您將不得不設置最大允許的上傳限制並堅持。僅僅因爲你增加了maxPostSize,這將不會導致任何重大問題(imho),因爲一旦處理完數據(即請求結束),你將丟棄數據。 – Gavin