1

我有以下代码工作:

      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”。我不想重命名设备上的文件,只是为了上传。

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

4

2 回答 2

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);
于 2014-05-13T10:24:06.597 回答
0

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

我认为它应该可以解决问题。

于 2012-11-20T23:40:45.570 回答