Java 使用org.apache.http.entity.mime将文件上载到服务器,但无法打开它

Java 使用org.apache.http.entity.mime将文件上载到服务器,但无法打开它,java,web-services,file-upload,redmine,Java,Web Services,File Upload,Redmine,我使用下面的代码上传一个文本文件到服务器,它可以工作 `HttpPost httppost = new HttpPost(uri+"/uploads.xml"); MultipartEntity mpEntity = new MultipartEntity(); FileBody cbFile = new FileBody(file); //insertValue httpclient.getParams().setParameter(CoreProtocol

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

   `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 内容配置:表单数据;name=userfile;filename=test.txt 内容类型:应用程序/八位字节流 内容传输编码:二进制

内容

-RzBVXI2AHuDiIU5UHz-A1jZrpEg6a0JY-

谢谢

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

FileEntity实体=新FileEntityfile

取代:

FileBody cbFile = new FileBody(file);mpEntity.addPart("userfile", cbFile);
它是有效的


但我不知道为什么…

这是正确的Mutlipart格式。如果您需要阅读帮助,可以共享服务器端代码吗。我们不知道你们使用的是什么技术。我用这个代码将文件上传到Redmine发行版的附件中!如果我上传一张图片。我仍然无法通过双击打开它。然后我用文本编辑打开这个图像,我发现Mutlipart格式的消息在那个图像文件中,所以我无法打开它。