只希望能帮到正在编程路上的你

先配置yml文件,如果是线上就用/user

#文件上传
upload:filePath: D:/
#  filePath: /usr/java/image

业务接口

package com.maxed.service.common;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import java.util.List;public interface QuestionService {List<String> uploadImg(MultipartFile[] files, HttpServletRequest request);
}

业务实现

package com.maxed.service.common;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;@Service
public class QuestionServiceImpl implements QuestionService {@Value("${upload.filePath}")private String filePath;private static boolean running = false;@Overridepublic List<String> uploadImg(MultipartFile[] files, HttpServletRequest request) {List<String> images = new ArrayList<>();for (MultipartFile file : files) {//获取绝对路径String realPath = filePath;SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");String format = sdf.format(new Date());//文件存放的目录File folder = new File(realPath + format);if (!folder.isDirectory()) {folder.mkdirs();}String oldName = file.getOriginalFilename();//文件后缀String suffix = oldName.substring(oldName.lastIndexOf("."), oldName.length());//文件新名字String newName = UUID.randomUUID().toString() + suffix;try {File targetFile = new File(folder, newName);if (!targetFile.exists()) {targetFile.mkdirs();} else {targetFile.delete();}file.transferTo(targetFile);
//                String filePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/uploadFile/" + format + newName;String filePath = request.getScheme() + "://hotel_api.xiyang.shop/uploadFile/" + format + newName;images.add(filePath);} catch (IOException e) {e.printStackTrace();}}return images;}
}

控制器

import com.maxed.adapter.IgnoreSecurity;
import com.maxed.error.Result;
import com.maxed.error.ResultUtil;
import com.maxed.service.common.QuestionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;@RestController
@RequestMapping("/upload")
@Api(value = "本地图片上传", tags = {"本地图片上传"})
@Slf4j
public class LocalHostUploadController {@ResourceQuestionService questionService;@PostMapping("/uploadMultipleFile")@ApiOperation(value = "文件上传")@IgnoreSecurity@ResponseBodypublic Result uploadImg(@RequestParam("file") MultipartFile[] files, HttpServletRequest request) throws IOException {List<String> strings = questionService.uploadImg(files, request);return ResultUtil.success(strings);}
}

java本地文件上传相关推荐

  1. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

  2. H5+JAVA的文件上传,断点续传

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  3. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  4. Java将文件上传到ftp服务器

    Java将文件上传到ftp服务器 首先简单介绍一下什么是FTP,以及如何在自己的电脑上搭建一个ftp服务器: -- FTP是文件传输协议(FTP)是一种客户端/服务器协议,用于将文件传输到主机或与主机 ...

  5. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  6. JAVA大文件上传断点续传解决方案

    JAVA大文件上传断点续传解决方案 参考文章: (1)JAVA大文件上传断点续传解决方案 (2)https://www.cnblogs.com/songsu/p/11834425.html (3)ht ...

  7. java jsp 文件上传_用JSP编写文件上传

    用JSP编写文件上传 发布时间:2016-09-14 来源: 点击: 次 如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易. 下面的例子只是一个简版 pack ...

  8. Python 技术篇-用flask服务实现mac本地文件上传至windows服务器指定文件夹下实例演示

    操作 linux 主机的话用 paramiko 会简单很多,可以看我下面的文章. Python 技术篇-用 paramiko 库实现 winodws 本地文件上传至 linux 服务器实例演示 首先是 ...

  9. Python 技术篇-用paramiko库实现winodws本地文件上传至linux服务器实例演示

    利用 paramiko 库可以实现 linux 服务器的管理. 如果想管理 windows 服务器的话就麻烦一点了,我用 flask 服务实现的,可以看我的这篇文章: Python 技术篇-用 fla ...

  10. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

最新文章

  1. 【SpringCloud】Ribbon:负载均衡
  2. [LeetCode_5] Longest Palindromic Substring
  3. python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析
  4. Loadrunner中web_reg_save_param的使用详解
  5. Educoder Matplotlib和Seaborn三维图 第2关:曲面三角剖分
  6. Windows批处理命令
  7. QQ客服代码(支持临时会话设置)
  8. 冷凝器胶球自动在线清洗装置在中央空调主机冷凝器清洗方案介绍
  9. APP推广渠道下载量统计方案
  10. 保龄球记分程序c语言,保龄球的计分规则和比赛规则
  11. 企业发文的红头文件_公司红头文件格式范文6篇
  12. 高德导航在天地图显示
  13. layui省市县三级联动,如何设置select选择时,值为省市县code码
  14. 给你一个杯子,你如何测试
  15. 查询分析器默认代码颜色
  16. 并发策略-CAS算法
  17. yac163: linux 下的163相册辅助工具
  18. 2021高考热度最高专业,大数据分析告诉你
  19. 网站渗透测试服务 squid反向代理代码执行漏洞的挖掘
  20. 达梦数据库 图形化界面安装详细教程

热门文章

  1. python VTK 初入门学习
  2. Padavan(华硕固件) 伪固定闪讯密码.
  3. aspnetpager 详解
  4. 百度网盘设置自定义提取码
  5. 常用软件静默安装参数
  6. 用驱动精灵和手动更新方式安装 Arduino mega 2560 驱动失败的解决方案
  7. 加速器在模拟器中的尝试
  8. oracle ssd加速,使用Oracle的SSD
  9. android的混淆器
  10. 关于使用Cobalt Strike制作宏病毒