精华内容
下载资源
问答
  • 一、增加配置文件: #图片大小 spring: servlet: multipart: max-request-size: -1 max-file-size: -1 #imgeUrl: /home/uploadFile imgeUrl: /Users/yang/Documents/others ps:图片大小会被限制,所以配置将...

    一、增加配置文件:

    #图片大小
    spring:
      servlet:
        multipart:
          max-request-size: -1
          max-file-size: -1
    
    #imgeUrl: /home/uploadFile
    imgeUrl: /Users/yang/Documents/others

    ps:图片大小会被限制,所以配置将设置为-1。当然依然可以设置成其他数字。

    二、创建一个设置图片大小的bean:

    package com.dou.bean;
    
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.web.servlet.MultipartConfigFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import javax.servlet.MultipartConfigElement;
    
    @Configuration
    public class MultipartConfig {
    
    
        @Value("${spring.servlet.multipart.max-request-size}")
        private String maxFileSize;
        @Value("${spring.servlet.multipart.max-file-size}")
        private String maxRequestSize;
        @Bean
        public MultipartConfigElement multipartConfigElement() {
            MultipartConfigFactory factory = new MultipartConfigFactory();
            // 单个数据大小
            factory.setMaxFileSize(maxFileSize);
            // 总上传数据大小
            factory.setMaxRequestSize(maxRequestSize);
            return factory.createMultipartConfig();
        }
    
    }
    

    三、创建一个类UploadFileServiceImpl:

    package com.dou.service.impl;
    
    import com.dou.service.UploadFileService;
    import com.dou.validator.CommonReturnType;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    import org.springframework.util.CollectionUtils;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.File;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    @Service
    public class UploadFileServiceImpl implements UploadFileService {
    
        @Value("${imgeUrl}")
        private String imgeUrl;
    
        private final String IMAGE_URL_FILE="image";
        private final String VIDEO_URL_FILE="video";
    
        /**
         * 上传图片
         * @param file
         * @return
         */
        public CommonReturnType uploadImage(MultipartFile file){
            return uploadFile(file,IMAGE_URL_FILE);
        }
    
        /**
         * 上传视频
         * @param file
         * @return
         */
        public CommonReturnType uploadVideo(MultipartFile file){
            return uploadFile(file,VIDEO_URL_FILE);
        }
    
        /**
         * 上传图片/视频  文件
         * @param file
         * @param filePath
         * @return
         */
        private CommonReturnType uploadFile(MultipartFile file,String filePath){
            Path path = null;
            try {
                String fileNameOld=file.getOriginalFilename();
                String fileName = null;
                if(fileNameOld.indexOf(".")!=-1){
                    String[] fileNameOldArr=fileNameOld.split("\\.");
                    if(fileNameOldArr.length>1){
                        fileName=fileNameOldArr[0]+String.valueOf(System.currentTimeMillis())+"."+fileNameOldArr[fileNameOldArr.length-1];
                    }
                }else{
                    fileName = String.valueOf(System.currentTimeMillis())+fileNameOld;
                }
                path = Paths.get(imgeUrl,filePath,fileName);  //在配置文件中定义;文件实际的存储地址
        //      deleteExistFile(path);
                System.out.println("save image to path: "+path.toString());
                File parentFile = path.getParent().toFile();
                if (!parentFile.exists()) {
                    parentFile.mkdirs();
        //          log.info("parent directory create success:" + parentFile.getPath());
                }
                file.transferTo(path.toFile());
        //      log.info("file upload success :" + path.toString());
            } catch (Exception e) {
        //      log.error(e.getMessage());
        //      log.error("save image error:" + e);
                return CommonReturnType.createFalse("失败。");
            }
            return CommonReturnType.create(null!=path?path.toString():"");
        }
    
        /**
         * 上传图片集合
         * @param fileArr
         * @return
         */
        public CommonReturnType uploadImageArr(List<MultipartFile> fileArr){
            return uploadFileArr(fileArr,IMAGE_URL_FILE);
        }
    
        /**
         * 上传视频集合
         * @param fileArr
         * @return
         */
        public CommonReturnType uploadVideoArr(List<MultipartFile> fileArr){
            return uploadFileArr(fileArr,VIDEO_URL_FILE);
        }
    
        /**
         * 上传文件集合
         * @param fileArr
         * @param filePath
         * @return
         */
        private CommonReturnType uploadFileArr(List<MultipartFile> fileArr,String filePath){
            if(CollectionUtils.isEmpty(fileArr)){
                CommonReturnType.createFalse("图片为空,删除更换失败。");
            }
            Map<String,Object> map=new HashMap<>();
            List<String> resultList=new ArrayList<>();
            int num=0;
            for(MultipartFile file: fileArr){
                CommonReturnType commonReturnType=uploadFile(file,filePath);
                if(commonReturnType.getStatus()){
                    resultList.add(String.valueOf(commonReturnType.getData()));
                }else{
                    num++;
                }
            }
            if(num>0){
                map.put("num","长传图片有:"+num+"个图片有误。");
                map.put("list",resultList);
                return CommonReturnType.createFalse(map);
            }
            map.put("list",resultList);
            return CommonReturnType.create(map);
        }
    
    }
    

     

    展开全文
  • * @param file 需要上传的文件—这里专门是为了上传图片而实现的 最大上传图片大小是50M * @param heightWidth 设置缩略图的宽高字符串,比如:_150x150 * @return 返回缩略图的地址和原图地址 * @throws Exception *...

    java端:
    /**
    *
    * @param file 需要上传的文件—这里专门是为了上传图片而实现的 最大上传图片大小是50M
    * @param heightWidth 设置缩略图的宽高字符串,比如:_150x150
    * @return 返回缩略图的地址和原图地址
    * @throws Exception
    */
    @RequestMapping("/upload_image")
    public Map<String,Object> upload_image(MultipartFile file,String heightWidth ) throws Exception{

        String url = fdfsClient.uploadFile(file);
        Map<String,Object> result = new HashMap<>();
        result.put("code", 200);
        result.put("msg", "上传成功");
    
        if (url.contains("null")){
            url=url.substring(url.indexOf("l")+2);
        }
        url=fastHost+"/"+url;//为了可以直接返回包含服务器的地址
        result.put("url", url);
        int indexOfPoint=url.lastIndexOf(".");
        url=url.substring(0,indexOfPoint)+heightWidth+url.substring(indexOfPoint);//设置缩略图路径
        result.put("thumbImage_url",url);
    
        return result;
    }
    

    最主要的是fastdfs相关配置:
    参考:https://blog.csdn.net/CleverCode/article/details/52278482?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

    一,/data/nginx/sbin/nginx -V
    例如我的:
    [root@ecs-8ba1-0011 data]# /data/nginx/sbin/nginx -V
    nginx version: nginx/1.19.2
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
    configure arguments: --prefix=/data/nginx --add-module=/data/fastdfs-nginx-module-master/src

    看看有没有加载这个模块 --with-http_image_filter_module (需要加载的模块)
    没有,则需要加载这个模块。

    二,安装gd,HttpImageFilterModule模块需要依赖gd-devel的支持

    yum -y install gd-devel 安装好之后, #cd /data/nginx-1.19.2 如我的:

    在这里插入图片描述
    然后,# ./configure --prefix=/data/nginx --add-module=/data/fastdfs-nginx-module-master/src --with-http_image_filter_module (之前/data/nginx/sbin/nginx -V 出来的有啥就放啥进去,最后在加上–with-http_image_filter_module)
    然后,# make && make install
    再 #/data/nginx/sbin/nginx -V 看看是否加载了with-http_image_filter_module该模块
    在这里插入图片描述
    如果没有加载这个,则说明没有加载模块成功!
    (需要把Makefile文件删除了 再重新./configure …省略…一遍 然后make &make install )

    三,接着找到nginx.conf文件,如图:
    在这里插入图片描述# vim nginx.conf 进到里面编写:
    在这里插入图片描述
    红色是需要注意的地方!

    #缩略图配置参数

        location ~ group1/M00/(.+)_([0-9]+)x([0-9]+)\.(jpg|jpeg|gif|png) {
            alias /data/fastdfs/storage_data/data;
            ngx_fastdfs_module;
            set $w $2;
            set $h $3;
    
            if ($w != "0") {
                rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ group1/M00$1.$4 break;
            }
    
            if ($h != "0") {
                rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|jpeg|gif|png)$ group1/M00$1.$4 break;
            }
    
           #设置根据宽高比例缩放
            image_filter resize $w $h;
           #设置原图最大值 
            image_filter_buffer 50M;
    
    
        }
    
    
        location ~ group1/M00/(.+)\.?(.+){
           alias /data/fastdfs/storage_data/data;
           ngx_fastdfs_module;
        }
    

    对了还需要把自己之前配置的比如我的:
    在这里插入图片描述
    给注释掉!要不然会应该效果!!!

    四,最后停掉nginx 再开启 比如我的:
    #/data/nginx/sbin/nginx -s stop 停掉
    #/data/nginx/sbin/nginx 开启

    效果如图:在这里插入图片描述
    说明配置成功了!

    测试:
    postman效果!
    在这里插入图片描述

    服务器测试效果!

    浏览器原图:
    在这里插入图片描述
    浏览器缩略图效果:
    在这里插入图片描述

    展开全文
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
  • java源码包

    2015-12-01 16:29:37
     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
  • Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
  • Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
  • Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
  • 1.1.在配置文件设置server.max-http-header-size(最大http请求头大小),其默认值为8KB,通常图片的base64会超过默认值,但是也不是越大越好(我设置2MB,然后前端再限制一下图片大小或者压缩图片),大了反而...

    一、问题发现

    1.可能因为base64字符太长,导致后端处理时出错,表现为前端请求报400错误;

    2.前端传数据到后端时可能base64字符串中的特殊字符被替换,例如+被替换成空格,表现为上传的图片不完整

    二、问题解决

    1.问题1解决方法:

    1.1.在配置文件中设置server.max-http-header-size(最大http请求头大小),其默认值为8KB,通常图片的base64会超过默认值,但是也不是越大越好(我设置2MB,然后前端再限制一下图片的大小或者压缩图片),大了反而有大问题,详情请看server.max-http-header-size的坑

    2.问题2解决方法:

    2.1.前端对base64字符串编码之后再传给后端处理,后端不需要解码,因为接收base64字符串时springmvc会进行一次解码

    2.2.也可以通过将被替换的字符手动换回来,不过不推荐使用,你不知道究竟还有没有其他特殊字符被替换

    String replace = base64.replace(" ", "+");
    MultipartFile multipartFile = BASE64DecodedMultipartFile.base64ToMultipart(replace);
    

    三.建议能不使用base64上传文件就不使用,一张2MB的图片转成base64字符串大概有3000000+个字符,想想都可怕啊

    展开全文
  • 实例281 限制文件大小文件上传 11.3 通过组件实现文件上传 实例282 使用jspSmartUpload组件实现文件上传 实例283 使用jspSmartUpload组件实现中文名文件上传 实例284 应用jspSmartUpload组件处理文件上传漏洞...
  • Java开发实战1200例.第2卷.part3

    热门讨论 2013-05-08 22:46:34
    实例169 设置背景图片透明度 271 实例170 设置背景色 273 7.3 处理图表的边框 274 实例171 隐藏图表边框 274 实例172 图表边框颜色和笔触 275 7.4 修改图表的图例 277 实例173 设置图例背景色 277 实例174 设置图例...
  • Java开发实战1200例.第2卷.part2

    热门讨论 2013-05-08 22:45:35
    实例169 设置背景图片透明度 271 实例170 设置背景色 273 7.3 处理图表的边框 274 实例171 隐藏图表边框 274 实例172 图表边框颜色和笔触 275 7.4 修改图表的图例 277 实例173 设置图例背景色 277 实例174 设置图例...
  • Java开发实战1200例.第2卷.part1

    热门讨论 2013-05-08 22:44:13
    实例169 设置背景图片透明度 271 实例170 设置背景色 273 7.3 处理图表的边框 274 实例171 隐藏图表边框 274 实例172 图表边框颜色和笔触 275 7.4 修改图表的图例 277 实例173 设置图例背景色 277 实例174 设置图例...
  • --上传文件拦截器, 设置最大上传文件大小 10M=10*1024*1024 (bytes)--> ${web.maxUploadSize}"/> <!-- <!--class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>--> <!-- <!--depends-on=...
  • 实例169 设置背景图片透明度 实例170 设置背景色 7.3 处理图表的边框 实例171 隐藏图表边框 实例172 图表边框颜色和笔触 7.4 修改图表的图例 实例173 设置图例背景色 实例174 设置图例边框 实例175 设置图例边缘间距...
  • -- 指定当struts2配置文件改变后,web框架是否重新加载struts2的配置文件 --> <!-- 指定需要Struts2处理的请求后缀,该属性的默认值是action --> ,do" /> <!-- 指定Web应用的默认编码集。对于获取中文请求...
  • // 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/")+ "upload"));// 设置存放临时文件的目录,web根目录下的upload目录 ...
  • xUtils jar包3个版本

    2017-02-17 15:25:32
    支持大文件上传上传文件不会oom; 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求; 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件; 返回文本...
  • 8、导出图片、图片地址和数据一样,只要是能访问的图片都可以导出(有需求、图片大小待解决),图片格式:.JPEG|.jpeg|.JPG|.jpg|.png|.gif 感谢支持、感谢你们(排名不分先后) 蒙蒙的雨(3元微信)、阿星支付宝...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    HTC HTC HTC HTC Dream/G1 Dream/G1 Dream/G1 Dream/G1 具体配置 硬件 3.17 英寸 HVGA (480 x 320) ; 1150mAh 电池 ;高通 528Mhz 7201 处理器 ; 64MB RAM 、 128MB ROM ; 1GB MicroSD 卡 ; QWERTY 全键盘; 310...
  • 在本地建立上传图片和文件的文件夹,如我的存放路径是在D:\upload\temp\img,D:\upload\temp\file文件夹下,然后修改tomcat的配置文件server.xml,添加虚拟路径,将对图片和文件的请求url映射到本机硬盘的相应路径,...
  • fckedit编辑器

    2013-11-10 14:28:32
    以允许上传功能,Connector Servlet的baseDir参数值用于设置上传文件存放的位置 在web.xml最后添加标签定义: <taglib-uri>/TestFCKeditor <taglib-location>/WEB-INF/FCKeditor.tld 现在的web.xml文件没有...
  • HTML开发王

    2013-01-03 11:33:09
    8.2.2 图片的幅面大小(width属性和height属性) 8.2.3 图片的说明(alt属性、longdesc属性) 8.2.4 图片的边框(border属性) 8.2.5 图片的占位符 8.2.6 图片和文字的对齐(align属性) 8.2.7 图片的水平间距和垂直间距...

空空如也

空空如也

1 2 3 4
收藏数 77
精华内容 30
关键字:

java配置文件设置上传图片大小

java 订阅