发送文件型(客户端主动向服务端发送文件):
发送函数:
private void process(String requestUrl, String filePath, String requestMethod, String fileName) throws Exception {
File file = new File(filePath + File.separator + fileName);
URL url = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
try(DataInputStream in = new DataInputStream(new FileInputStream(file))) {
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setChunkedStreamingMode(1024 * 1024);
conn.setRequestMethod(requestMethod);
conn.setConnectTimeout(50000);
conn.setRequestProperty("fileName", file.getName());
conn.setRequestProperty("Size",file.length() + "");
conn.connect();
OutputStream out = new DataOutputStream(conn.getOutputStream());
int bytes;
byte[] bufferOut = new byte[2048];
while ((bytes = in.read(bufferOut)) != -1) {
out.write(bufferOut, 0, bytes);
}
out.flush();
out.close();
// 接受端返回信息
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println("---line---" + line);
}
} catch (Exception e) {
System.out.println("error");
} finally {
conn.disconnect();
}
}
接收函数:
public void approveFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
String fileName = request.getHeader("fileName");
try(FileOutputStream fileOutputStream = new FileOutputStream("D:\\code\\Tomcat\\test\\" + fileName);) {
String size = request.getHeader("Size");