多部分请求和自定义 Header
Multipart Request and Custom Header
对于我当前的解决方案,我正在使用 apache commons FileUpload 库来处理传入的 multi-part 请求。我能够适当地发送文件,然后使用流 api 代码 here.
在服务器端读取流
如果您查看列出的多部分请求的格式 here,每个添加的文件都会列出一个 Content-Disposition。我需要添加一个 startByte 标签(类似于您在 content-disposition 中添加 "filename" 标签的方式)。我不太确定如何正确地做到这一点,然后在请求中检索它?这当然不是全局的header,因为这个流中有多个文件。
有人有什么想法吗?
这适用于任何可能感兴趣的人,事实证明这很容易:为此,在客户端上,您附加 header,如下所示:
outputStream.writeBytes("Content-Disposition: form-data; name=\"" + filename + "\"; filename=\"" + filename + "\";\r\n");
outputStream.writeBytes("My-Custom-Header: My-Data\r\n");
outputStream.writeBytes("\r\n");
然后,在服务器上,使用 commons FileUpload,您只需执行:
FileItemHeaders headers = item.getHeaders();
headers.getHeader("My-Custom-Header");
对于我当前的解决方案,我正在使用 apache commons FileUpload 库来处理传入的 multi-part 请求。我能够适当地发送文件,然后使用流 api 代码 here.
在服务器端读取流如果您查看列出的多部分请求的格式 here,每个添加的文件都会列出一个 Content-Disposition。我需要添加一个 startByte 标签(类似于您在 content-disposition 中添加 "filename" 标签的方式)。我不太确定如何正确地做到这一点,然后在请求中检索它?这当然不是全局的header,因为这个流中有多个文件。
有人有什么想法吗?
这适用于任何可能感兴趣的人,事实证明这很容易:为此,在客户端上,您附加 header,如下所示:
outputStream.writeBytes("Content-Disposition: form-data; name=\"" + filename + "\"; filename=\"" + filename + "\";\r\n");
outputStream.writeBytes("My-Custom-Header: My-Data\r\n");
outputStream.writeBytes("\r\n");
然后,在服务器上,使用 commons FileUpload,您只需执行:
FileItemHeaders headers = item.getHeaders();
headers.getHeader("My-Custom-Header");