【问题标题】:How to upload file from micro control to a tomcat servlet如何将文件从微控制器上传到 tomcat servlet
【发布时间】:2013-08-25 22:02:09
【问题描述】:

我有一个微控制器,我想将文件上传到在 tomcat 下运行的 java servlet。从浏览器上传时,servlet 部分工作正常,但我正在努力从我的微控制器上传文件。

两个问题:

1 - 从 tomcat 我如何查看原始的 post 语句。我已经尝试了几种输入过滤器的版本,包括 Requestdumperfilter - 但他们都想帮助我并格式化数据 - 我需要原始数据。

2 - 我正在使用 servlet 演示中的上传帖子进行测试。我不断得到 org.apache.tomcat.util.http.fileupload.FileUploadException:请求被拒绝,因为没有找到多部分边界 - 但显然边界已定义。

POST /Download/upload HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data; 
boundary=---------------------------263081694432439
Content-Length: 441
-----------------------------263081694432439
Content-Disposition: form-data; name="file"; filename="sample.txt"
Content-Type: text/plain

Data from sample file
-----------------------------263081694432439
Content-Disposition: form-data; name="destination"

/tmp
-----------------------------263081694432439
Content-Disposition: form-data; name="upload"

Upload
-----------------------------263081694432439--

【问题讨论】:

  • 标题和正文之间应该有一个空行。
  • 通过标题和正文 - 我假设您的意思是第一行。我确实有,但猜我发帖时没有复制。

标签: tomcat file-upload


【解决方案1】:

您的边界必须在内容类型标题中。
此外,http 标头和请求正文之间应该有一个空行。
您的标头以Content-Length: 441 结尾,但第一个新行在Content-Type: text/plain 之后,解析器期望边界在正文的开头,但找到Data from sample file

POST /Download/upload HTTP/1.1
Host: localhost:8080
Content-Type: multipart/form-data; boundary=---------------------------263081694432439
Content-Length: 422

-----------------------------263081694432439
Content-Disposition: form-data; name="file"; filename="sample.txt"
Content-Type: text/plain

Data from sample file
-----------------------------263081694432439
Content-Disposition: form-data; name="destination"

/tmp
-----------------------------263081694432439
Content-Disposition: form-data; name="upload"

Upload
-----------------------------263081694432439--

【讨论】:

  • 好吧,这行得通。不确定所有规格。示例 - 第 3 行,边界必须在此行而不是新行。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2015-01-13
  • 2011-01-16
  • 2018-09-20
  • 1970-01-01
  • 2013-07-22
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多