-
String targetUrl =
"http://localhost:8080/Test"
;
-
PostMethod filePost =
new
PostMethod(targetUrl) {
-
public
String getRequestCharSet() {
-
return
"UTF-8"
;
-
}
-
};
-
try
{
-
HttpClient client =
new
HttpClient();
-
File file =
new
File(
"c:/新闻.xml"
);
-
Part[] parts =
new
Part[] {
new
CustomFilePart(file.getName(), file)};
-
filePost.setRequestEntity(
new
MultipartRequestEntity(parts, filePost.getParams()));
-
int
statuscode=client.executeMethod(filePost);
-
if
(statuscode == HttpStatus.SC_OK) {
-
System.out.println(
"添加文件成功"
);
-
}
else
{
-
System.out.println(
"添加文件失败"
);
-
}
-
}
catch
(Exception ex) {
-
ex.printStackTrace();
-
}
-
import
java.io.File;
-
import
java.io.FileNotFoundException;
-
import
java.io.IOException;
-
import
java.io.OutputStream;
-
-
import
org.apache.commons.httpclient.methods.multipart.FilePart;
-
import
org.apache.commons.httpclient.util.EncodingUtil;
-
-
-
-
public
class
CustomFilePart
extends
FilePart {
-
public
CustomFilePart(String filename, File file)
-
throws
FileNotFoundException {
-
super
(filename, file);
-
}
-
-
protected
void
sendDispositionHeader(OutputStream out)
throws
IOException {
-
super
.sendDispositionHeader(out);
-
String filename = getSource().getFileName();
-
if
(filename !=
null
) {
-
out.write(EncodingUtil.getAsciiBytes(FILE_NAME));
-
out.write(QUOTE_BYTES);
-
out.write(EncodingUtil.getBytes(filename,
"utf-8"
));
-
out.write(QUOTE_BYTES);
-
}
-
}
-
}
而服务端使用apache的commonfileupload:
-
File tempfile =
new
File(System.getProperty(
"java.io.tmpdir"
));
-
DiskFileItemFactory diskFileItemFactory =
new
DiskFileItemFactory();
-
diskFileItemFactory.setSizeThreshold(
4096
);
-
diskFileItemFactory.setRepository(tempfile);
-
ServletFileUpload fu =
new
ServletFileUpload(diskFileItemFactory);
-
fu.setSizeMax(
4194304
);
-
List fileItems = fu.parseRequest(request);
-
Iterator i = fileItems.iterator();
-
while
(i.hasNext()) {
-
FileItem fi = (FileItem) i.next();
-
String fileName = fi.getName();
-
if
(fileName !=
null
) {
-
File fullFile =
new
File(fi.getName());
-
File savedFile =
new
File(uploadPath, fullFile.getName());
-
fi.write(savedFile);
-
}
-
}
-
System.out.println(
"upload succeed"
);
在JSP页面
中
,form表单
中
method必须设置为post,并且要设置enctype=”multipart/form-data”:<%@ page contentType="text/html;
char
set
=UTF-8" %>
<title>
上传文件
</title>
</HEAD>
<form act
更改文件的
编码
,要利用第三方jar包:cpdetector_1.0.10.jar,其
中
它依赖于jar包:antlr-2.7.4.jar,
char
det-1.0.jar,jargs-1.0.jar,获取文件的
编码
:public static String guessEncoding(String
file
Path) {
Char
set
Printer cp = new
Char
set
Printer();...
解决
HttpClient
的
File
Part
上传文件
中
使用
中文名称
文件名
乱码
问题
,我当时在网上找了一遍,网上都是
public class Custom
File
Part extends
File
Part {
public Custom
File
Part(String
file
name,
File
file
)
throws
File
NotFoundEx...
File
Part支持的文件类型包括:图像(JPG、PNG、GIF、BMP)、文档(DOC、DOCX、PPT、PPTX、XLS、XLSX、PDF)、音频(MP3、WAV、WMA)、视频(MP4、AVI、WMV)、网页(HTML、HTM)以及压缩文件(ZIP、RAR)。
在
Java
中
有时生成文件之后让前端下载,获取的
文件名
中
存在
中
文或者是空格的时候,下载的
文件名
称出现
乱码
。这个
问题
困扰了我好久,用过各种的转码都无济于事。在后来终于
解决
了,在这里和大家分享一下,其实也就是加一个方法判断浏览器的的
问题
。
1:都是
使用
的new Fi...
* To change this template, choose Tools | Templates
* and open the template in the editor.
package upload;
import
java
.io.
File
;
import
java
.io.IOException;
import org.apache.commons.httpc
使用
httpclient
上传文件
可能遇到 API 变更的
问题
,列表参数传递的
问题
,
中
文
乱码
的
问题
等等。本文介绍了
使用
httpclient
4.5 版本
上传文件
的方法,并提供示例代码
public void upload(String local
File
){
Closeable
HttpClient
httpClient
= null;
CloseableHttpResponse response = null;
try {
httpClient
=
HttpClient
s.createDefault