2015-01-07 90 views
0

我使用下面的代碼將文本文件上傳到服務器,它可以工作。使用org.apache.http.entity.mime將文件上傳到服務器,但無法打開它

`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 Content-Disposition:form-data; NAME = 「userfile的」;文件名= 「test.txt的」 內容類型:應用/八位字節流 內容傳送編碼:二進制

CONTENT ...

--RzBVXI2AHuDiIU5UHz-A1jZrpEg6a0JY--

謝謝!

+0

這是正確的Mutlipart格式。如果你需要幫助閱讀它,你能分享服務器端代碼嗎?我們不知道您使用的是什麼技術。 –

+0

我使用此代碼將文件上傳到Redmine問題的附件! – DeanLin

+0

如果我上傳圖片。我仍然無法通過雙擊打開它。 然後我打開這個圖像使用文本編輯,我發現Mutlipart格式的消息是在該圖像文件,以便我無法打開它。 – DeanLin

回答

0

最後我解決了它。 我使用此代碼

FileEntity entity = new FileEntity(file)

更換:

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

和它的作品。

但我不知道爲什麼....

相關問題