JAVA代码:
package destoon; import java.io.File; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; /** * 上传文件例子 * @author YULI * */ public class HttpClientPostMethod { public static void main(String[] args) throws ClientProtocolException, IOException { post(); } public static void post() throws ClientProtocolException, IOException { HttpClient httpclient = new DefaultHttpClient(); HttpPost post = new HttpPost("http://localhost:8080/HttpUtils/action.jsp"); FileBody fileBody = new FileBody(new File("D:/临时文件/1.jpg")); StringBody stringBody = new StringBody("文件的描述"); MultipartEntity entity = new MultipartEntity(); entity.addPart("file", fileBody); entity.addPart("desc", stringBody); post.setEntity(entity); HttpResponse response = httpclient.execute(post); if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){ HttpEntity entitys = response.getEntity(); if (entity != null) { System.out.println(entity.getContentLength()); System.out.println(EntityUtils.toString(entitys)); } } httpclient.getConnectionManager().shutdown(); } }
JSP文件:
<%@page import="java.util.Iterator"%> <%@page import="org.apache.commons.fileupload.FileItem"%> <%@page import="java.util.List"%> <%@page import="java.io.File"%> <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>upload.jsp</title> </head> <body> <% String dir = application.getRealPath("/") + "temp\\"; if (ServletFileUpload.isMultipartContent(request)) { DiskFileItemFactory factory = new DiskFileItemFactory(); //设定内存可以存放文件的最大容量,单位字节,超过的部分会以临时文件的形式存放在硬盘上,这里设置成10兆 factory.setSizeThreshold(10485760); File temp = new File("/temp/"); if(!temp.exists()){ temp.mkdirs(); } //设置临时文件存放的位置 factory.setRepository(temp); ServletFileUpload upload = new ServletFileUpload(factory); //设置单个文件最大容量限制,-1表示没有限制 upload.setFileSizeMax(-1); //设置整个请求的上传容量限制,-1表示没有限制 upload.setSizeMax(-1); List<FileItem> items = upload.parseRequest(request); Iterator<FileItem> iterator = items.iterator(); FileItem upload_item = null; String desc = ""; while (iterator.hasNext()) { FileItem item = iterator.next(); if(item.isFormField()){ //普通字段 //out.print(item.getFieldName());//得到字段name属性的值 //out.print(item.getString("UTF-8"));//得到字段的值 desc = item.getString("UTF-8"); }else{ //文件字段 //out.print("--------------"); //out.print(item.getFieldName()); //out.println(item.getContentType());//文件类型《application/pdf》 //out.println(item.getName());//文件名称《入门.pdf》 //upload_item = item; item.write(new File(dir + "\\" + item.getName())); } } } %>
相关推荐
在本篇文章中,我们将深入探讨如何使用HTTPClient上传文件以及解决可能出现的乱码问题。 首先,让我们关注“httpclient 上传文件”。在HTTP协议中,文件上传通常涉及到POST请求,特别是当Content-Type设置为...
首先,我们需要理解POST请求的基本概念,它通常用于向服务器发送数据,比如提交表单或者上传文件。 在`httpclient.jar`包中,主要涉及`org.apache.http.client`和`org.apache.http.entity`这两个关键包,它们提供了...
2. **POST方法**:POST方法用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。POST方法可以传输大量数据,数据在请求...
在"Httpclient+testng接口测试小例子"中,我们将使用以下步骤进行接口测试: 1. **环境准备**:首先,确保项目中已经添加了Apache HttpClient和TestNG的依赖。这些通常通过Maven或Gradle等构建工具进行管理,通过在...
本实例源码着重于C#中的一个高级特性——断点续传下载文件,这在处理大文件下载时尤其有用,因为它允许用户在中断后从上次停止的位置继续下载,而不是重新开始。 断点续传技术的基本原理是通过记录已下载文件的部分...
在这个例子中,我们创建了两个FileBody对象,分别对应于要上传的两个文件`filename1`和`filename2`,并指定了它们在服务器上的相对路径。`StringBody`用于添加一个普通字符串参数`filename1`。所有这些实体都被添加...
下面我们将深入探讨Android中使用HttpClient的例子及其相关知识点。 1. **HttpClient的基本概念** HttpClient是一个基于Java语言的HTTP客户端编程工具包,它提供了丰富的API,可以方便地创建、发送和处理HTTP请求...
在这个例子中,我们创建了一个MultipartEntity,添加了一个二进制文件,并将其设置为HttpPost的实体,从而实现了文件的上传。 HttpClient还支持其他的高级特性,如自定义请求头、HTTP代理设置、超时控制、SSL/TLS...
这个示例展示了HttpClient的基本用法,但实际使用时,你可能需要根据具体需求进行更复杂的操作,如POST请求、文件上传、重试策略、连接池管理等。HttpClient提供了丰富的API来支持这些高级功能,使其成为Java HTTP...
HttpClient还支持更复杂的用法,如POST请求、文件上传、Cookie管理、HTTPS通信、自定义连接管理器等。通过深入学习HttpClient,你可以更灵活地处理与Web服务器的交互,实现各种复杂的网络功能。
在文件上传方面,HttpClient3.1 提供了`MultipartRequestEntity`类,允许你构建包含多个部分(如文件和文本字段)的POST请求。通过设置`Part[]`数组,你可以指定要上传的文件和字段名,然后将其传递给`...
这个简单的例子展示了HttpClient如何处理文件上传和参数传递,这对于开发Web服务客户端或者测试接口非常有用。在实际应用中,你可能需要根据具体需求调整代码,例如处理错误、添加超时设置、使用不同的编码方式等。...
HttpClient支持通过表单或multipart/form-data格式上传文件。以下是一个使用HttpPost和FileEntity的例子: ```java File file = new File("/path/to/file"); HttpEntity entity = MultipartEntityBuilder.create() ...
在处理文件上传的问题上,HttpClient也提供了便捷的方法,使得开发者可以轻松地发送POST请求并附带文件数据。 以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org...
通过使用HttpClient,可以轻松地解决以前很头疼的事情,例如处理COOKIE问题、上传文件等。 在使用HttpClient之前,我们需要了解为什么需要模拟浏览器GET_POST。通常情况下,我们都是使用IE或Navigator浏览器来访问...
- 在客户端,使用`WebClient`或`HttpClient`类可以方便地发送带有文件的POST请求。为了发送进度信息,可以监听`HttpContent.ReadAsByteArrayAsync`或其他读取方法的进度事件。 7. **参数传递**: - 在文件上传的...
请注意,这个例子假设你已经有了文件的本地路径,实际项目中你可能需要从用户选择或内存中获取文件。此外,接口的具体要求可能会有所不同,比如参数的命名、文件的大小限制等,需要根据实际API文档进行调整。 在...
HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...
使用HttpClient上传文件 在客户端(例如,使用C#的`HttpClient`或JavaScript的`fetch`),你可以构造一个POST请求,包含文件数据。对于C#,可以使用`MultipartFormDataContent`来封装文件数据。 ```csharp var ...