Java 文件上传代码示例 - 使用 HttpClient 和 Commons IO
以下是一个简单的 Java 上传文件的示例代码,使用 Apache HttpClient 和 Apache Commons IO 库:
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.DefaultHttpClient;
public class FileUploader {
public static void main(String[] args) throws IOException {
// 上传的文件
File file = new File('path/to/file.jpg');
// 上传的URL
String uploadUrl = 'http://example.com/upload';
// 创建一个HTTP客户端
HttpClient client = new DefaultHttpClient();
// 创建一个POST请求
HttpPost post = new HttpPost(uploadUrl);
// 创建一个多部件实体构建器
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// 设置编码模式为BROWSER_COMPATIBLE,以确保文件名正确
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// 添加文件部件
builder.addBinaryBody('file', file);
// 构建多部分实体
HttpEntity entity = builder.build();
// 设置请求实体
post.setEntity(entity);
// 执行POST请求
HttpResponse response = client.execute(post);
// 输出响应结果
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(response.getEntity().getContent());
}
}
需要注意的是,这个示例使用了 Apache HttpClient 和 Apache Commons IO 库。在实际使用中,可能需要根据具体情况进行调整。
原文地址: https://www.cveoy.top/t/topic/lVjM 著作权归作者所有。请勿转载和采集!