2012-03-01 70 views
0

使用Javascript我成功調整客戶端上的圖像的大小,但我不能將結果返回到文件輸入。發送客戶端調整大小的圖像與帖子

<input id="file" name="userfile" type="file" /> 

我調整,並得到了非常大的文本數據

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAYAAA... 

我不知道如何退給文件輸入,或郵寄。

f.value = data; 

不起作用。

我試圖把數據放在文本字段中,但大於約130k的文本不被服務器接受,但調整後的圖像通常比這大。我沒有找到如何改變這一限制,或如何發佈大數據。

我很感激任何幫助。謝謝。

+0

「但大於約130k的文本不被服務器接受」。你可以上傳大圖片到服務器嗎?如果沒有,這個服務器沒有任何選擇,除了可能發送多個部分 – kirilloid 2012-03-01 15:29:06

+0

是的,我可以上傳很多更大的文件,但我無法轉換我的數據(數據:圖像/ PNG; base64,IVBORw0 ...)將文件上傳爲文件。 – 2012-03-01 15:40:54

回答

1

使用文本字段或隱藏字段,併發送表單作爲POST請求將是正確的方式發送它。

如果您發送表單作爲GET,數據將被放入URL中,並且這將非常限制數據大小。 130 kb的限制聽起來正確。

發送POST數據只受到服務器接受請求的大小的限制,通常大於130 kb。例如,Windows服務器的默認值爲4 MB。

+0

我這樣做後,但一些服務器設置(也許suhosin?)不允許我發送超過130k數據在文本字段。最大的文件大小設置得不夠多,但我不能將我的圖像base64數據轉換回文件上傳。 – 2012-03-01 16:02:51

+0

@GeorgeGebauer:是的,Suhosin似乎限制了請求值。這可能是有用的:http://www.webmastertalkforums.com/blogs/jordan/401-suhosin-request-post-get-character-length-limit-max_value_length.html – Guffa 2012-03-01 16:21:33

+0

130kb對於GET來說太多了。限制通常是2-4 kb – kirilloid 2012-03-01 19:27:31