向Jenkins上传文件失败

1 投票
1 回答
1102 浏览
提问于 2025-04-16 23:41

我正在尝试通过Python向Jenkins发送一个文件,使用的是multipart/form-data格式。请求的内容大致是这样的:

--===============1849003312==
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: file; name="file0"; filename="meta.xml"

PHhtbD4NCjwveG1sPg0K

--===============1849003312==--

但是这导致Jenkins在处理时出现了异常,以下是最相关的错误信息:

Exception: <br>Stacktrace: <pre>org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly
   at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:381)
   at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
   at org.kohsuke.stapler.RequestImpl.parseMultipartFormData(RequestImpl.java:767)
   at org.kohsuke.stapler.RequestImpl.getSubmittedForm(RequestImpl.java:782)

我的POST请求哪里出错了?

编辑:请求的头信息如下:

内容类型:

multipart/form-data; boundary="===============1849003312=="    

MIME版本:

1.0

1 个回答

0

我觉得应该把 Content-Disposition: file; 改成 Content-Disposition: attachment;。在这个FileUploadBase 的源代码里没有提到“file”,而且在RFC 2183 文档中也没有把“file”列为内容处理的一个值。

撰写回答