【发布时间】:2010-08-03 03:43:59
【问题描述】:
我正在使用 Apache HTTP 组件 (4.1-alpha2) 将文件上传到保管箱。这是使用多部分表单数据完成的。以包含国际(非 ascii)字符的多部分形式对文件名进行编码的正确方法是什么?
如果我使用标准 API,服务器会返回 HTTP 状态 Forbidden。如果我修改上传代码所以文件名是urlencoded:
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
FileBody bin = new FileBody(file_obj, URLEncoder.encode(file_obj.getName(), HTTP.UTF_8), HTTP.UTF_8, HTTP.OCTET_STREAM_TYPE );
entity.addPart("file", bin);
req.setEntity(entity);
文件已上传,但我最终得到的文件名仍然是编码的。例如。 %D1%82%D0%B5%D1%81%D1%82.txt
【问题讨论】:
标签: java http internationalization