![](/img/trans.png)
[英]PayloadTooLargeError: request entity too large when upload image
[英]How to upload an image using NodeJS, Nginx and base64? (413 PayloadTooLargeError: request entity too large)
我正在嘗試使用Postman原始文本選項上傳5張base64圖像,並設置了application / json標頭。 服務器不斷返回所提到的錯誤。 我在Nginx反向代理后面使用NodeJS。
我嘗試了以下代碼中提到的所有選項,包括將限制增加到(100M),這顯然不是問題。
NodeJS(MAXIMUM_FILE_SIZE_LIMIT ='500mb'):
app.use(bodyParser.urlencoded({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, parameterLimit: 100000, extended: true }));
app.use(bodyParser.json({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended: true }));
// app.use(bodyParser.text({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended:true }));
app.use( bodyParser.text({type : 'application/text-enriched', limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );
app.use( bodyParser.raw({limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );
Nginx的
內部配置(服務器,http,位置):
nginx.conf,
網站啟用/默認,
網站可用/默認:
client_max_body_size 100M
我想成功上傳圖像(5),其總大小不超過2MB。
最終的解決方案是將Nginx的client_max_body_size 5M;
保留為client_max_body_size 5M;
僅在nginx.conf
,以及在NodeJS代碼中使用以下幾行:
app.use(bodyParser.urlencoded({ limit: '5mb', extended: true }));
app.use(bodyParser.json({ limit: '5mb' }));
請注意!!!
嘗試了多種組合后,該問題似乎與上面提到的問題無關。
在按順序使用node
命令執行服務器時,一切工作正常。 但是,因為我想保持應用程序正常工作(套內的服務器重啟),我用forever
。
Forever啟動了該應用程序,但顯然每次都始終拋出413
錯誤,無論nginx和節點的設置如何。
切換到PM2
,最終解決了該問題。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.