2013-01-10 126 views
0

我有頁面,其中我拿着一些圖像的base64表示(大約每個1mb),現在我通過ajax發佈這個數據到服務器(contentType是默認的 - 網址編碼)。這工作正常,如果我有一個或兩個圖像發送,但如果我有超過2MB的請求數據,服務器不接受,請求參數沒有任何東西,所以我增加了我的雄貓maxPostSize ,它也開始接受更多的數據,但是如果這會造成內存問題,我有點擔心,特別是如果我有很多圖像?通過ajax發送大量數據(base64字符串)到服務器

另外我試着將contentType改爲multipart/formdata,但是它出錯了,「說這個請求被拒絕了,因爲沒有找到multipart邊界」。

編輯

我覺得我應該闡述較多,實際上要求是這樣的 - 用戶點擊上傳鏈接,他應該可以上傳文件,那麼他應該能夠看到縮略圖頁面上的圖像(所有這些都不刷新頁面)。我嘗試了以下方法。

  1. 使用文件閱讀器讀取該文件,顯示縮略圖,然後明確地觸發上傳,當用戶點擊保存,簡單但不跨瀏覽器的,並不在IE瀏覽器
  2. 允許用戶上傳的文件從服務器發送圖像的base64版本,當用戶單擊保存時,將base64字符串發送回服務器,並將其轉換回字節數組並保存到數據庫。

現在,我有一個屏幕,其中所有的記錄默認是可編輯的,所以點擊保存就意味着將所有記錄的圖像字符串發送到服務器,這將導致內存問題。

「3」。尚未實現,但首先保存其他領域(非圖像領域),然後明確地保存一個接一個的圖像(看起來沒問題,但請求數量會很高)

等待某人建議第4個方法,希望我已經解釋夠

+0

這是一個非常難以回答的問題 - 你的服務器有多少內存?使用了多少?爲什麼不建立一個測試平臺來緩存內存使用情況/ CPU,然後發佈不同的內容以查看會發生什麼?如果你的機器有一個內存TB和1000個16核心CPU,那麼這可能是好的。如果它是一個月共享5美元的主機,那麼它可能不是。只有你可以通過測試回答這個問題。 –

+0

根據任何「上傳」功能,您將不得不設置最大允許的上傳限制並堅持。僅僅因爲你增加了maxPostSize,這將不會導致任何重大問題(imho),因爲一旦處理完數據(即請求結束),你將丟棄數據。 – Gavin

回答

-3

免責聲明......沒有做過這樣的事,但...

爲什麼不單獨發送每個圖像? :)

+1

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – SztupY

+0

......但是,正如我所說的,我做了這樣的事情,但是,例如,Facebook照片上傳器似乎一次只能處理一個圖像,所以也許這是加載許多圖像的有效方式。無可否認,如果目標是加載一個大圖像,那麼它不是一個解決方案...... –

相關問題