当前位置:首页 > Java

java如何上传文件

2026-03-02 21:44:40Java

使用Servlet处理文件上传

在Java中,可以使用Servlet来处理文件上传。需要用到javax.servlet.http.Part或Apache Commons FileUpload库。

@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        Part filePart = request.getPart("file");
        String fileName = filePart.getSubmittedFileName();
        InputStream fileContent = filePart.getInputStream();

        Files.copy(fileContent, Paths.get("/path/to/save/" + fileName));
    }
}

使用Spring Boot处理文件上传

在Spring Boot中,可以使用MultipartFile简化文件上传处理。

java如何上传文件

@RestController
public class FileUploadController {
    @PostMapping("/upload")
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        String fileName = file.getOriginalFilename();
        file.transferTo(new File("/path/to/save/" + fileName));
        return "File uploaded successfully";
    }
}

使用Apache Commons FileUpload

对于非Servlet环境或需要更多控制的情况,可以使用Apache Commons FileUpload库。

DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);

for (FileItem item : items) {
    if (!item.isFormField()) {
        String fileName = item.getName();
        File uploadedFile = new File("/path/to/save/" + fileName);
        item.write(uploadedFile);
    }
}

前端表单设置

前端HTML表单需要正确设置enctype属性才能支持文件上传。

java如何上传文件

<form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">Upload</button>
</form>

文件大小限制配置

在Spring Boot中,可以在application.properties中配置上传文件大小限制。

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB

在Servlet中,可以通过@MultipartConfig注解配置限制。

@MultipartConfig(
    fileSizeThreshold = 1024 * 1024,
    maxFileSize = 1024 * 1024 * 5,
    maxRequestSize = 1024 * 1024 * 5 * 5
)

分享给朋友:

相关文章

java如何输出

java如何输出

输出到控制台 使用 System.out.println() 方法输出内容到控制台,适用于调试或简单信息展示。 示例代码: System.out.println("Hello, World!")…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…

vue 实现上传文件

vue 实现上传文件

使用 Vue 实现文件上传 基础文件上传 通过 HTML 的 <input type="file"> 元素结合 Vue 的 v-on:change 事件监听文件选择。在方法中通过 Form…

vue实现上传文件案例

vue实现上传文件案例

Vue 文件上传实现方法 基础表单上传 使用原生 <input type="file"> 结合 FormData 实现文件上传: <template> <div&g…

react 上传文件如何拿到文件

react 上传文件如何拿到文件

获取上传文件的方法 在React中获取上传的文件通常通过<input type="file">元素实现。以下是具体实现方式: 使用onChange事件监听 创建一个受控的文件输入组件,通…