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); // 设置缓冲区大小,这里是4kb
diskFileItemFactory.setRepository(tempfile); // 设置缓冲区目录
ServletFileUpload fu = new ServletFileUpload(diskFileItemFactory);
fu.setSizeMax(4194304); // 限制文件大小最大为4M
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");
分享到:
相关推荐
easy-okhttp是对OkHttp网络框架封装,提供文件上传和下载,表单(含文件)提交,链式调用,支持HTTPS和自定义签名证书等特性。 OkHttp网络框架的流行始于Android,但是在Java后端仍然是Apache HttpClient网络框架,这...
Httpclient上传文件,非常有用的jar包 apache-mime4j-0.6.jar httpmime-4.0.jar
它支持表单参数、文件上传和自定义正文实体 无需丑陋的字符串连接即可轻松添加路由参数 本机支持基本身份验证 每个请求的可定制标头 完全了解代理。 可定制的超时时间 支持 gzip 通过一套全面的开发人员测试实现...
Httpclient上传文件,非常有用的jar包 apache-mime4j-0.6.jar httpmime-4.0.jar
当然了,正如前面说到的,如果我们自己使用java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是Apache开源组织中的httpclient,它隶属于...
FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力 HttpClient Commons-HttpClient 提供了可以工作于HTTP协议客户端的一个框架. IO IO 是一个 I/O 工具集 Jelly Jelly是一个基于 ...
httpmime-4.0.jar|apache-mime4j-0.6.jar|使用httpClient上传文件的两个jar包。。下载出来是一个压缩包,解压后就可得到两个jar包了。。
通过Apache的httpClient的get, post 请求下载,或者上传文件
该工具类主要作用是在应用服务器直接上传视频文件到抖英开放平台,需要引用包httpclient,具体如下 <groupId>org.apache.httpcomponents <artifactId>httpclient <version>4.5.12 <!-- ...
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,支持get Post 图片加载 文件上传。
apache.org最新httpmime,适用于通过HttpClient上传文件。
代码是基于loopj (Asynchronous Http Client for Android) 的文件上传Demo,loopj 是基于 Apache's HttpClient 的异步http客户端。
2. Apache HttpClient库 模拟请求API接口 3. MultipartEntityBuilder 将上传相关参数以这种方式提交给目标API。 4. Jackson库 用于序列化和反序列化JSON数据。 5. Java I/O 基于Java I/O操作 6. UUID类 避免...
是基于Apache HttpClient库的。可以方便快速高效的进行网络数据请求 和发送,文件下载和上传。 特点: 清晰的网络请求回调 请求使用ThreadPool,限制并发资源使用情况 GET / POST基于参数构 建使用(RequestParams)...
通过org.apache.commons.httpclient.HttpClient来实现文件上传,该jar包可以直接从网上所搜、下载。 /** * @param mContext 上下文 * @param targetUrl 文件上传地址 * @param filePath 文件路径 */ public ...
同时上传数据和文件的源码,需要将...另附php后台接收说明和上传jar包 apache-mime4j-0.6.jar commons-httpclient-3.1.jar commons-httpclient-3.1.jar commons-codec-1.4.jar commons-logging.jar httpmime-4.0.3.jar
java使用代码上传tif至geoserver发布服务并设置坐标系和style样式 包含jar::commons-codec-1.15.jar commons-io-2.2.jar commons-logging-1.2.jar geoserver-manager-1.7.0-pdok2.jar jdom-1.1.3.jar org....
Android开发的测试网络连接质量的工具源码,分上传文件速度测试、下载文件速度测试和ping测试,有直观的界面查看测试过程,测试结果保存到文件。使用到了apache的HttpClient,和对ping命令的简单应用。
OkHttp3入门准备工作添加依赖设置网络权限创建简单创建四步走异步请求同步请求中止请求具体介绍GET请求POST请求下载(保存到本地)简单的下载请求(示例)准备工作显示下载进度上传文件上传文件上传(简单示例)涉及...
OkHttp是一款优秀的HTTP框架,它支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题 ...