加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx将文件类型传递给后端服务器

发布时间:2020-12-13 21:36:39 所属栏目:Nginx 来源:网络整理
导读:我正在尝试设置nginx来处理文件上传,并在完成后将文件信息传递到后端服务器.我在https://coderwall.com/p/swgfvw发现了一个帖子,显示了如何执行此操作,我能够看到一个文件被上传到/ tmp目录.但是,我还想将文件名和类型(Content-Disposition和Content-Type)传

我正在尝试设置nginx来处理文件上传,并在完成后将文件信息传递到后端服务器.我在https://coderwall.com/p/swgfvw发现了一个帖子,显示了如何执行此操作,我能够看到一个文件被上传到/ tmp目录.但是,我还想将文件名和类型(Content-Disposition和Content-Type)传递给后端服务器.

我尝试捕获在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:希望这个问题可以解决吗? (尝试过超级用户,但似乎没有太多活动)

最佳答案
如果标题被忽略,请尝试

proxy_pass_header    Content-Disposition;

或直接通过

proxy_set_header     Content-Disposition $http_content_disposition;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读