0
我有一台服务器可以让用户上传文件。用户上传的文件后,我发送POST请求到该服务器 在doGet方法,我这样做:如何接收文件并将其发送到不同的服务器
if (path.endsWith("/upload")) {
out.println("<html>");
out.println("<body>");
out.print("<form action=\"/MySelf/upload\" method=\"POST\" enctype=\"multipart/form-data\">");
out.print("<input name=\"file\" type=\"file\" size=\"50\">");
out.print("<input name=\"submit\" type=\"submit\" value=\"submit\">");
out.print("</form>");
out.println("</body>");
out.println("</html>");
}
在doPost方法,我可以这样做:
if (path.endsWith("/upload")) {
Part filePart = request.getPart("file");
String filename = getFilename(filePart);
//Wanna send this filePart to other servers(for example:127.0.0.1:8888,127.0.0.1:8889 etc.)
}
现在,我现在要发送此filePart
到其他服务器,我怎样才能使用HttpURLConnection
来做到这一点?
如果该文件是非常大的?有没有办法可以避免将filePart转换为String? – CSnerd
是的,在sendPost方法中,您可以使用'FileInputStream.read()'一次读取几千字节的filePart文件,并使用多个'writeBytes()'调用将其发送到远程服务器。 – lreeder
我更新了我的答案,以显示如何从本地文件读取并将其推送到远程。 – lreeder