java form 表单servlet图片写入到文件夹
时间: 2023-09-23 12:13:11 浏览: 92
在 Java Servlet 中,可以通过 `HttpServletRequest` 对象来获取表单中的图片文件,并且通过 `FileOutputStream` 将图片文件写入到文件夹中。以下是一种简单的实现方法:
1. 在 HTML 表单中添加文件上传输入框:
```html
<form action="upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Upload" />
</form>
```
2. 在 Servlet 中处理文件上传请求:
```java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取表单中的图片文件
Part filePart = request.getPart("file");
InputStream fileContent = filePart.getInputStream();
// 将图片文件写入到文件夹中
String fileName = filePart.getSubmittedFileName();
OutputStream outputStream = new FileOutputStream(new File("path/to/folder/" + fileName));
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileContent.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
fileContent.close();
// 响应上传成功信息
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("Upload success.");
}
}
```
在这个例子中,我们通过 `@WebServlet("/upload")` 注解将 `UploadServlet` 映射到了 `/upload` URL。在 `doPost` 方法中,我们首先通过 `request.getPart("file")` 方法获取表单中的图片文件,然后使用 `FileOutputStream` 将图片文件写入到文件夹中。
最后,我们通过 `response.getWriter().println("Upload success.")` 方法向客户端发送上传成功信息。需要注意的是,为了正确处理中文字符集,我们在响应头中设置了字符集编码为 `UTF-8`。
阅读全文