1.文件批量上传
- @ApiOperation(value = "文件批量上传")
- @PostMapping("/multipleImageUpload")
- @Transactional(rollbackFor = Exception.class)
- public Result multipleImageUpload(@ApiParam(name = "files",value = "文件",required = true) @RequestParam("files") MultipartFile[] files) {
- System.out.println("上传的图片数"+files.length);
- List<String> imageList = new ArrayList<>();
- for (MultipartFile file : files) {
- if (!file.getContentType().startsWith("image/")) {
- return new Result(4000, "只允许上传图片文件");
- }
- String filename = file.getOriginalFilename();
- String uploadUrl = OssUtils.upload(file,filename);
- imageList.add(uploadUrl);
- }
- if (imageList.isEmpty()){
- return new Result(4001,"您未上传图片");
- }
- return new Result(2000,"图片批量上传成功",imageList);
- }
复制代码 1.1多文件上传时使用数组 MultipartFile[ ] files
此中要加上@RequestParam("files") files 要和 参数列表中的参数名称一致
这雷同于springMVC架构 添加web 依赖
若传入文件 会把哀求头改为 multipart
1.2大坑
由于swagger2.xx 版本 不支持多文件上传,仅支持单文件上传,多文件上传时会报错 500
2.使用时间戳进行oss上传
- public static String upload(MultipartFile file, String path) {
- // 创建OSSClient实例。
- OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, secretAccessKey);
- try {
- //创建唯一图片名称 + 唯一的时间戳
- String timeStampPath = addTimeStampToPath(path);
- // 创建PutObject请求。
- ossClient.putObject(bucketName, timeStampPath, file.getInputStream());
- String url = ossUrl + "/" + timeStampPath;
- return url;
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- } finally {
- if (ossClient != null) {
- ossClient.shutdown();
- }
- }
- }
复制代码 才开始我计划对url 进行操纵 厥后才发现没有啥卵用
由于主要是通过这里面的路径来毗连的
2.1进行时间戳的拼接
- private static String addTimeStampToPath(String path) {
- String fileName = path;
- //获取文件拓展名
- String extension = "";
- int dotIndex = path.lastIndexOf(".");
- if(dotIndex > 0){
- extension = path.substring(dotIndex);
- fileName = path.substring(0,dotIndex);
- }
- //获取当前时间戳
- String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
- return fileName +"_"+ timeStamp + extension;
- }
复制代码 返回的时文件名+时间戳
3.近日发现的一些bug
3.1当我的状态为0时,一查询就会查出来所有的状态值
本来是这样写的,if test ="status != null and status != '' " 这样的话传入0就会查找所有的值
why?
想想缘故起因应该是这样的 : 当你加入 status != "" 时,mybatis 大概会把status 判定为字符串。那 0 就是空 直接省略该选项
3.2条件查询时已添加不查询下架的条件 但仍能查询到
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |