java 上传多个文件保存至本地文件夹
时间: 2023-05-03 07:05:59 浏览: 337
在Java中,我们可以使用Java IO库中的FileInputStream类和FileOutputStream类来实现上传多个文件保存至本地文件夹的功能。具体的步骤如下:
1. 创建一个java.io.File对象,用于表示要保存的本地文件夹的路径。
2. 创建一个javax.servlet.http.Part对象数组,表示上传的多个文件。在处理文件上传的Servlet中,可以通过request.getParts()方法获取到上传的所有文件的Part对象数组。
3. 遍历Part对象数组,使用Part.getInputStream()方法获得每个文件的输入流,将其保存至本地文件夹。这一步可使用FileInputStream类和FileOutputStream类来完成。其中,可以使用Part.getSubmittedFileName()方法获取上传文件的文件名,用于构造保存到本地的文件的File对象。
4. 在处理完所有的上传文件后,关闭文件输入流和文件输出流。
简单示例代码如下:
```
@MultipartConfig
public class UploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// 获取保存的本地文件夹路径
String savePath = "/path/to/save/folder";
File fileSaveDir = new File(savePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdir();
}
// 获取上传的所有文件
Part[] parts = request.getParts().toArray(new Part[0]);
for (Part part : parts) {
// 构造保存到本地的文件对象
String fileName = extractFileName(part);
File saveFile = new File(savePath + File.separator + fileName);
// 使用FileInputStream类和FileOutputStream类将上传的文件保存至本地文件夹
InputStream inputStream = part.getInputStream();
OutputStream outputStream = new FileOutputStream(saveFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
inputStream.close();
outputStream.close();
}
// 返回上传成功信息
response.getWriter().write("上传成功!");
}
private String extractFileName(Part part) {
String contentDisposition = part.getHeader("content-disposition");
String[] items = contentDisposition.split(";");
for (String item : items) {
if (item.trim().startsWith("filename")) {
return item.substring(item.indexOf("=") + 2, item.length() - 1);
}
}
return "";
}
}
```
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)