java往服务器上传文件
时间: 2023-08-29 15:05:10 浏览: 59
可以使用Java的HttpURLConnection类来实现文件上传。下面是一个简单的示例代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class FileUploader {
public static void uploadFile(String url, File file) throws Exception {
// 创建连接
URL uploadUrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) uploadUrl.openConnection();
// 设置请求头
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/octet-stream");
con.setRequestProperty("Connection", "Keep-Alive");
con.setRequestProperty("Charset", "UTF-8");
// 上传文件
OutputStream out = con.getOutputStream();
FileInputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len = -1;
while ((len = fileIn.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
fileIn.close();
out.flush();
// 获取响应结果
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
System.out.println("文件上传成功!");
} else {
System.out.println("文件上传失败!");
}
out.close();
con.disconnect();
}
public static void main(String[] args) throws Exception {
File file = new File("test.txt");
uploadFile("http://example.com/upload", file);
}
}
```
其中,url为服务器的上传接口地址,file为待上传的文件。需要注意的是,上传文件的请求头中的Content-Type为`application/octet-stream`,表示上传的是二进制流文件。