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

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
    评论
Java后端可以使用HttpClient库来实现Post提交文件流的功能,服务端可以使用Spring框架来接收文件流。 首先,我们需要在Java后端使用HttpClient库来实现Post提交文件流的功能。示例代码如下: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody("file", file, ContentType.APPLICATION_OCTET_STREAM, fileName); HttpEntity multipart = builder.build(); httpPost.setEntity(multipart); CloseableHttpResponse response = httpClient.execute(httpPost); ``` 其中,`url`是要提交到的服务端地址,`file`是要提交的文件流,`fileName`是文件名。 接下来,我们需要在服务端使用Spring框架来接收文件流。示例代码如下: ```java @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException { byte[] bytes = file.getBytes(); // 处理文件流 return "success"; } ``` 其中,`/upload`是服务端接收请求的地址,`file`是要接收的文件流。 注意,服务端需要添加`commons-fileupload`和`commons-io`两个依赖库才能使用`MultipartFile`类型。另外,服务端还需要在`application.properties`文件中配置文件上传的相关参数,如下所示: ``` spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 以上就是Java后端HttpClient Post提交文件流及服务端接收文件流的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值