最近做一個上傳圖片的項目,前端使用jquery 的post提交,然后把上傳的圖片的base64碼 傳到后台,發現幾KB或者幾十KB的圖片,都可以傳到后台,但是在上傳幾M
的圖片在后台接收的時候,發現傳過來的參數都是空。而且頁面和控制台都沒有報錯,想想以前的學習知識,理論上post傳參是沒有限制的,為什么 會出現這種問題呢?
通過查閱資料總結如下:
一、首先我們應該知道 所謂限制post參數的大小,到底是由什么限制的,http協議規范並沒有對URL的長度進行限制。就算有限制,它也只是限制你URI的大小,對你后面所帶的參數的長度並沒有什么限制。
二、另外就是所謂長度限制是有瀏覽器和web應用服務器決定的,不同的瀏覽器和服務器設定的大小都不一樣。主要還是看瀏覽器和服務器處理程序的能力。
綜上兩點,我就知道我的問題出在哪了,由於我本地服務器用的是tomcat,tomcat默認限制post大的大小是2M,
設置post請求的大小(以tomcat為例),在conf/server.xml 文件中,在 <Connector /> 標簽中設置 maxPostSize="0",
maxPostSize="0",就代表post請求的參數無限制。
以上就是個人對於這一問題的總結和理解,有不足之處,還望大神給予糾正指點,不勝感激!