java后端接收 post_JAVA后端接收处理上传图片 超级简单

本文介绍了在SpringBoot项目中,使用Spring MVC的MultipartFile类接收前端POST请求上传的图片。内容涵盖单文件和多文件图片上传,以及ImageUtil工具类的使用,帮助理解Java后端处理图片上传的简单流程。
摘要由CSDN通过智能技术生成
cad66348425804004bdfd9583b6f0b83.png

使用MultipartFile进行接收上传图片非常的简单。

文中实例是博智互联在SpringBoot项目上,使用Spring MVC的MultipartFile类在JAVA后端 接收前端上传文件的请求。

这里只给大家处理controller层,server保存逻辑具体使用什么技术保存持久化大家可以任意发挥。

MultipartFile 单文件图片上传。

接收文件,先保存文件,再把文件保存到对象,再保存对象,最后返回执行结果

@RequestMapping("/addArticleImg")public Map addArticleImg(MultipartFile mfile){Map map = new HashMap<>();if(mfile == null) {map.put("msg", "没有上传缩略图!");return map;}//获取后缀String suffixName = ImageUtil.getImagePath(mfile);//获取新的文件名String newFileName = ImageUtil.getNewFileName(suffixName);//保存图片File file = new File(ImageUtil.getNewImagePath(newFileName));boolean state = ImageUtil.saveImage(mfile, file);if(state) {//图片保存成功//设置图片到对象 article是实体类对象article.setArticle_img(ImageUtil.getNewImagePath(newFileName));//保存对象到数据库int row = articleService.addArticle(article);if(row>0) {map.put("success", true);map.put("msg", "图片上传成功");}else {map.put("success", false);map.put("msg", "图片上传失败");}}else {map.put("success", false);map.put("msg", "图片上传失败");}return map;}

MultipartFile 多文件多图片上传

上传多张图片,后端接收保存文件,最后返回的是文件保存地址集合。

@RequestMapping("/addimage")public Map addimage(MultipartFile[] files){Map map = new HashMap<>();List list = new ArrayList<>();for(int i = 0;i

ImageUtil工具类

图片处理的工具类

SAVE_IMAGE_PATH 如果是windows 可以直接盘符地址,如果是linux 可以/root/从根目录设置路径,当然也可以保存调用项目地址做对应保存。

private final static String SAVE_IMAGE_PATH = "D:/image/";/** * 返回文件后缀 * @param file * @return */public static String getImagePath(MultipartFile file) {String fileName = file.getOriginalFilename();//获取原文件名int index = fileName.indexOf(".");return fileName.substring(index, fileName.length());}/** * 保存图片 * @param mfile * @param file * @return */public static boolean saveImage(MultipartFile mfile ,File file) {//查看文件夹是否存在,不存在则创建if(!file.getParentFile().exists()) {file.getParentFile().mkdirs();}try {//使用此方法保存必须要绝对路径且文件夹必须已存在,否则报错mfile.transferTo(file);return true;} catch (IllegalStateException | IOException e) {e.printStackTrace();}return false;}/** * 新文件名 * @param hz * @return */public static String getNewFileName(String suffix) {SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String date = sdf.format(new Date());return date + UUID.randomUUID() + suffix;}/** * 返回图片保存地址 * @param name * @return */public static String getNewImagePath(String name) {return SAVE_IMAGE_PATH+name;}

是不是很简单呢?其他好多知识,都是需要实操一遍两遍后就非常简单容易,最主要是要理解java的特性和程序的编程开发思想。好了,希望博智互联的分享,对大家可以有一些帮助。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接收POST文件,你可以使用Java Servlet API提供的HttpServletRequest对象,它具有getPart()方法,该方法可以获取与请求一起发送的文件。以下是一个示例代码: ```java @WebServlet("/upload") @MultipartConfig 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"); //获取上传的文件 Part filePart = request.getPart("file"); String fileName = getFileName(filePart); InputStream fileContent = filePart.getInputStream(); //保存上传的文件到本地 OutputStream out = new FileOutputStream(new File("D:/upload/" + fileName)); int read = 0; byte[] bytes = new byte[1024]; while ((read = fileContent.read(bytes)) != -1) { out.write(bytes, 0, read); } out.flush(); out.close(); response.getWriter().write("文件上传成功"); } private String getFileName(Part part) { String contentDispositionHeader = part.getHeader("content-disposition"); String[] elements = contentDispositionHeader.split(";"); for (String element : elements) { if (element.trim().startsWith("filename")) { return element.substring(element.indexOf('=') + 1).trim().replace("\"", ""); } } return null; } } ``` 在这个示例代码中,我们使用@WebServlet注释标记这是一个Servlet,并使用@MultipartConfig注释指定请求的内容类型为multipart/form-data。在doPost()方法中,我们使用request.getPart()方法获取上传的文件,并使用getFileName()方法获取文件名。然后,我们将文件保存到本地文件系统。最后,我们向客户端发送响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值