我在jsp方面有这个代码:
<body>
<form action="upload" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Select File : </td>
<td><input name="file" type="file"/> </td>
</tr>
<tr>
<td>Enter Filename : </td>
<td><input type="text" name="photoname" size="20"/> </td>
</tr>
</table>
<p/>
<input type="submit" value="Upload File"/>
</form>
</body>
这会上传一个文件。
在servlet中,我有代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Part p1 = request.getPart("file");
InputStream is = p1.getInputStream();
Part p2 = request.getPart("photoname");
Scanner s = new Scanner(p2.getInputStream());
String filename = s.nextLine();
// get filename to use on the server
String outputfile = "C:\\Documents and Settings\\Sherman\\Desktop\\ImoveiSP\\ImoveiSP\\DB_Scripts" + filename + ".jpg";
//outputfile = outputfile + ".jpg";
//System.out.println("out = " + outputfile);
FileOutputStream os = new FileOutputStream(outputfile);
// write bytes taken from uploaded file to target file
int ch = is.read();
while (ch != -1) {
os.write(ch);
ch = is.read();
}
os.close();
out.println("<h3>File uploaded successfully! </h3>");
File file = new File("C:\\Documents and Settings\\Sherman\\Desktop\\ImoveiSP\\ImoveiSP\\DB_Scripts" + filename + ".jpg");
uploadAmazon(file, "ibagem", "");
} catch (Exception ex) {
out.println("Exception -->" + ex.getMessage());
} finally {
out.close();
}
}
此servlet获取上载的文件并将其保存到磁盘。
我对这些代码有两个问题:
答案 0 :(得分:1)
我建议使用Commons FileUpload来处理所有这些问题;它让事情变得更容易。 See the user guide for details。
处理多个文件与处理单个文件相同。
我建议将该绝对路径名移动到配置参数btw。