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