java文件上传
时间: 2023-06-30 18:09:12 浏览: 86
java 文件上传
在Java中实现文件上传可以使用Java Servlet API中的`javax.servlet.http.Part`类和`javax.servlet.http.HttpServletRequest`类。
以下是一个简单的文件上传示例:
1. 在HTML表单中添加文件上传控件:
```
<form action="upload" method="post" enctype="multipart/form-data">
Select file to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
```
2. 在Servlet中处理文件上传请求:
```
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取文件上传的Part对象
Part filePart = request.getPart("fileToUpload");
// 获取上传文件的文件名
String fileName = filePart.getSubmittedFileName();
// 将上传的文件保存到服务器上的指定目录
String uploadPath = "C:/uploads/";
File file = new File(uploadPath + fileName);
filePart.write(uploadPath + fileName);
out.println("File uploaded successfully!");
}
}
```
在上面的示例中,我们首先获取了文件上传的`Part`对象,并从中获取上传文件的文件名。然后,我们将上传的文件保存到指定的目录中。最后,我们向客户端发送一个简单的成功消息。
请注意,我们在HTML表单中指定了`enctype`属性为`multipart/form-data`,这是必须的,因为文件上传请求需要使用`POST`方法,并且需要一些特殊的编码类型来支持文件上传。
阅读全文