2012-11-20 46 views
1

我有下面的代碼工作:當我使用Android上傳文件時,如何重命名文件?

 MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
     entity.addPart("userfile", new FileBody(f)); 
     httppost.setEntity(entity); 
     HttpResponse response = httpclient.execute(httppost); 

的問題是,File f的名稱是「ABC-temp.jpg」,我希望它是「xyz.jpg」當我把它上傳。我不想重命名設備上的文件,但只有上傳。

要做到這一點,最好的方法是什麼?

+0

,如果你把它上傳在服務器上怎麼樣進行重命名服務器上通過使用Web serivecs –

+0

http://stackoverflow.com/questions/2896733/how-to-rename-a-file-on-sdcard-with -android-application –

+0

@mohammed momn - 在這一點上,讓我們假設我無法做到這一點。 –

回答

0

我不確定它會起作用,但是您可以創建一個繼承自FileBody的類並將覆蓋getFilename()方法。

我認爲它應該做的伎倆。

1

這當然有可能,事實上我已經做到了。

    FileBody mFileBody = new FileBody(f); 
        String mUploadFileName = "xyz.jpg"; 

       FormBodyPart mFormBodyPart = new FormBodyPart("userfile", mFileBody) 
       { 
        @Override 
        protected void generateContentDisp(ContentBody body) { 
         StringBuilder buffer = new StringBuilder(); 
         buffer.append("form-data; name=\""); 
         buffer.append("userfile"); 
         buffer.append("\""); 
         buffer.append("; filename=\""+mUploadFileName+"\""); 
         addField(MIME.CONTENT_DISPOSITION, buffer.toString()); 
        } 
       }; 
       multipartContent.addPart(mFormBodyPart);