网络编程java上传文件
时间: 2023-11-10 07:02:03 浏览: 47
在Java中进行网络编程,可以使用Java的URL类和URLConnection类来实现文件上传。下面是一个简单的示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class FileUploader {
public static void uploadFile(String targetUrl, String filePath) throws IOException {
File file = new File(filePath);
URL url = new URL(targetUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
// 设置请求头信息
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + "*****");
// 创建输入流,读取文件内容
try (InputStream inputStream = new FileInputStream(file)) {
try (OutputStream outputStream = connection.getOutputStream()) {
// 写入请求的开始边界符
outputStream.write(("--*****\r\n").getBytes());
outputStream.write(("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"\r\n").getBytes());
outputStream.write(("Content-Type: " + "application/octet-stream" + "\r\n").getBytes());
outputStream.write("\r\n".getBytes());
// 写入文件内容
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 写入请求的结束边界符
outputStream.write("\r\n".getBytes());
outputStream.write(("--*****--\r\n").getBytes());
}
}
// 发送请求并获取响应
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// 处理响应
} else {
// 处理错误
}
connection.disconnect();
}
}
```
要使用该示例代码,您需要提供目标URL和要上传的文件的本地路径。调用`uploadFile`方法即可完成文件上传。