【问题标题】:use org.apache.http.entity.mime to upload a file to server but can't open it使用 org.apache.http.entity.mime 将文件上传到服务器但无法打开它
【发布时间】:2015-01-07 09:47:03
【问题描述】:

我使用下面的代码将文本文件上传到服务器,它可以工作。

   `HttpPost httppost = new HttpPost(uri+"/uploads.xml");
    MultipartEntity mpEntity = new MultipartEntity();
    FileBody cbFile = new FileBody(file);
    //insertValue
   httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
    httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, defaultcreds);
    httppost.setHeader("Content-Type", "application/octet-stream");
    mpEntity.addPart("userfile", cbFile);
    httppost.setEntity(mpEntity);
    //execute
    HttpResponse response = httpclient.execute(httppost);`

但是当我从服务器下载文本文件时,我无法打开它并发现文本文件中添加了其他消息(粗体文本)。

--RzBVXI2AHuDiIU5UHz-A1jZrpEg6a0JY 内容处置:表单数据;名称="用户文件";文件名="test.txt" 内容类型:应用程序/八位字节流 内容传输编码:二进制

内容...

--RzBVXI2AHuDiIU5UHz-A1jZrpEg6a0JY--

谢谢!

【问题讨论】:

  • 这是正确的多部分格式。如果您需要帮助阅读它,您能否分享服务器端代码。我们不知道您使用的是什么技术。
  • 我使用此代码将文件上传到Redmine问题的附件!
  • 如果我上传图片。我还是不能双击打开。然后我用文本编辑打开这个图像,我发现 Mutlipart 格式的消息在那个图像文件中,所以我无法打开它。

标签: java web-services file-upload redmine


【解决方案1】:

终于解决了。 我用这个代码

FileEntity entity = new FileEntity(file)

替换:

FileBody cbFile = new FileBody(file);mpEntity.addPart("userfile", cbFile);

它有效。

但我不知道为什么....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2020-07-17
    • 2011-05-30
    相关资源
    最近更新 更多