我在使用Android上传文件时如何重命名文件?

时间:2012-11-20 23:34:34

标签: java 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”。我不想在设备上重命名该文件,用于上传。

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

我不确定它是否可行,但您可以创建一个将继承自FileBody并将覆盖getFilename()方法的类。

我认为应该这样做。