Java上传多种文件格式到服务器
时间: 2023-06-13 09:06:25 浏览: 148
首先需要创建一个 HTML 表单,其中 input 标签的 type 属性设置为 file,如下所示:
```
<form action="uploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="file1"/>
<input type="file" name="file2"/>
<input type="submit" value="上传"/>
</form>
```
其中,enctype 属性的值必须设置为 multipart/form-data,这样才能支持上传文件。
然后,在后端编写一个 Servlet 处理上传的文件,示例如下:
```
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传的文件
Part file1 = request.getPart("file1");
Part file2 = request.getPart("file2");
// 将上传的文件保存到服务器
String path = "D:/upload/";
file1.write(path + file1.getSubmittedFileName());
file2.write(path + file2.getSubmittedFileName());
// 返回上传成功的提示信息
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("上传成功!");
out.flush();
out.close();
}
```
在 doGet() 方法中也需要加上如下代码,以支持文件上传:
```
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
```
在这个示例中,我们通过 request.getPart() 方法获取上传的文件,然后使用 Part.write() 方法将文件保存到服务器上指定的目录中。最后,我们向客户端返回上传成功的提示信息。
需要注意的是,如果上传的文件比较大,可以使用流的方式保存文件,以免占用过多的内存。同时,为了保证文件名不重复,可以在文件名前加上时间戳等唯一标识符。
阅读全文