我試圖設置nginx來處理文件上傳,並在完成後將文件信息傳遞到後端服務器。我在https://coderwall.com/p/swgfvw遇到過一篇文章,它顯示瞭如何做到這一點,並且我能夠看到文件正在上傳到/ tmp目錄。不過,我還想將文件名和類型(Content-Disposition和Content-Type)傳遞給後端服務器。nginx將文件類型傳遞到後端服務器
我試圖捕捉什麼是在HTTP服務器端口接收和看到下面的,
POST /upload HTTP/1.1
User-Agent: curl/7.32.0
Host: MyHostName
Accept: */*
Content-Length: 4431
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------6060af4f937c14c9
--------------------------6060af4f937c14c9
Content-Disposition: form-data; name="filedata"; filename="sessions.txt"
Content-Type: text/plain
其次是數據。
我要上傳nginx的定位塊,
location /upload {
limit_except POST { deny all; }
client_body_temp_path /tmp/;
client_body_in_file_only on;
client_body_buffer_size 128K;
client_max_body_size 100M;
proxy_redirect off;
proxy_set_header X-FILE $request_body_file;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_pass_request_headers on;
proxy_set_body off;
proxy_http_version 1.1;
proxy_pass http://my_backend;
}
有了這個,我能夠傳遞和接收以下在我的後端,
'content-type': 'multipart/form-data; boundary=------------------------6060af4f937c14c9'
'x-file': '/tmp/0000000001'
,但真的想知道我是怎麼可以獲得
Content-Disposition: form-data; name="filedata"; filename="sessions.txt"
Content-Type: text/plain
到我的後端。任何幫助,這是非常感謝。
P.S:希望在這裏可以解決這個問題嗎? (試過超級用戶,但它似乎並沒有太多的活動)
你有沒有碰運氣?文件頂部的Content-Disposition標題是預期的行爲嗎?如果是這樣,你以後會將它們去掉以顯示文件(圖像)或實例嗎? – Mike
其實不,我決定現在不要使用這種方法,但是確實認爲解析上游服務器上的文件是獲得這個工作的一種方法(當我有機會時可能會嘗試類似的方式)。 –
我也想知道是否有人有這樣的幸運...... – stackular