2012-11-20 19 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);