分享

Java第57讲——如何实现上传文件的功能

 zhuxrgf 2021-02-14

Java第57讲——如何实现上传文件的功能

原创编程实践2020-11-24 22:52:45
Java第57讲——如何实现上传文件的功能

当我们开发一个Web系统时,常常需要实现上传用户身份证照片或其他图片的功能,上传图片只是上传文件的特殊场景。

使用SpringBoot实现上传文件的功能,非常简单。下面给出一个完整的实现样例。

1、创建文件上传模块

使用IDEA创建file_uploader模块,创建时使用Spring Web和Lombok依赖,创建后的代码视图如下:

Java第57讲——如何实现上传文件的功能

2、建立Controller类

建立controller包,然后在controller包中增加FileController类,现在代码视图变为:

Java第57讲——如何实现上传文件的功能

FileController类中有一个upload方法,用于接收来自浏览器的文件,并保存在服务器的static目录中。FileController类的完整源代码如下:

package com.flying.file_uploader.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; @Slf4j @RestController public class FileController{ @PostMapping('/upload') public String upload(@RequestParam(value='upload', required=false)MultipartFile multipartFile, HttpServletRequest httpServerletRequest){ String filePath = getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); if (filePath.endsWith('.jar')){ int lastSeperator = filePath.lastIndexOf('/'); filePath = filePath.substring(0, lastSeperator); } filePath = filePath '/resource/static'; String fileName = multipartFile.getOriginalFilename(); File directory = new File(filePath); if (!directory.isDirectory()){ directory.mkdirs(); } try{ multipartFile.transferTo(new File(filePath, fileName)); return 'success'; }catch(Exception ex){ ex.printStackTrace(); } return 'failed'; } }

3、修改配置文件

修改配置文件application.properties,设置Web服务器的监听端口和静态文件访问路径:

server.port=8070
spring.mvc.static-path-pattern=/static/**
spring.web.resources.static-locations=classpath:/static/

4、建立上传文件的HTML页面

这个HTML页面供用户选择文件,并提供上传按钮:

<!DOCTYPE html> <html> <head> <title>上传文件</title> <meta charset='utf-8' /> </head> <body> <form action='http加上://加上<ip地址>:8070/upload' method='post' enctype='multipart/form-data'> <input type='file' name='upload' value='选择要上传的文件' /> <br/> <input type='submit' value='确定'/> </form> </body> </html>

将HTML文件保存为file_uploader.html。

5、测试

编译服务器程序之后运行,情况如下:

Java第57讲——如何实现上传文件的功能

使用浏览器打开file_uploader.html文件,显示如下:

Java第57讲——如何实现上传文件的功能

选择要上传的文件(这里准备了一个图片文件apple.jpg),然后点击确定按钮,浏览器显示如下:

Java第57讲——如何实现上传文件的功能

在浏览器中,输入apple.jpg文件在服务器的网址,可以看到我们成功地上传了apple.jpg文件:

Java第57讲——如何实现上传文件的功能

我们在服务器上查看,resource/static目录中确实有上传的apple.jpg文件:

Java第57讲——如何实现上传文件的功能
收藏
举报
14 条评论

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多