我有以下代码:
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 :(得分: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()方法的类。
我认为应该这样做。