• fastdfs 图片服务器 使用java端作为客户端上传图片


    之前有说道搭建fastdfs作为图片服务器,但是没有说明如何真正在代码里调用,那么今天大致讲一下,如何使用java客户端进行上传

    首先你得要有一个客户端,导入到eclipse中即可

    git地址如下:

    https://github.com/leechenxiang/fastdfs-client-java

    js:

    $(function () {
        $('#fileupload').fileupload({
            dataType: 'json',
            done: function (e, data) {
                console.log(data);  
                if (data.result.status != "200") {
                    alert(data.result.msg);
                } else {
                    $.each(data.result.data, function (index, file) {
                      $("#lee").html("<a href='" + file.url + "' target='_blank'><img src='" + file.url + "' width='80' hight='80'></img></a>");
                      $("#picUrl").attr("value", file.urlDB);
                  }); 
                }
            },
            progressall: function (e, data) {
                var progress = parseInt(data.loaded / data.total * 100, 10);
                $('#progress .bar').css(
                    'width',
                    progress + '%'
                );
               },
            dropZone: $('#dropzone')
        });
    });

    html:

    <input id="fileupload" type="file" name="files[]" data-url="/file/upload.action" multiple>
        
        <div id="dropzone" class="fade well">Drop files here</div>
        
        <div id="progress" class="progress">
            <div class="bar" style=" 0%;"></div>
        </div>
        
        <div id="lee"></div>

    controller:

    @RequestMapping(value="/upload", method = RequestMethod.POST)
        @ResponseBody
        public LeeJSONResult upload(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {
    
            List<PictureResult> picList = new ArrayList<PictureResult>();
            
            Iterator<String> itr = request.getFileNames();
            MultipartFile mpf = null;
            while (itr.hasNext()) {
                mpf = request.getFile(itr.next());
                PictureResult pic = pictureService.uploadPic(mpf);
                picList.add(pic);
            }
            
            return LeeJSONResult.ok(picList);
        }

    service:

    @Value("${IMAGE_SERVER_BASE_URL}")
        private String IMAGE_SERVER_BASE_URL;
        
        @Value("${SERVER_PATH}")
        private String SERVER_PATH;
        
        @Override
        public PictureResult uploadPic(MultipartFile picFile) {
            PictureResult result = new PictureResult();
            // 判断图片是否为空
            if (picFile.isEmpty()) {
                result.setError(YesOrNo.YES.value);
                result.setMessage("图片为空");
                return result;
            }
            // 上传到图片服务器
            try {
                // 取图片扩展名
                String originalFilename = picFile.getOriginalFilename();
                // 取扩展名不要“.”
                String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
                FastDFSClient client = new FastDFSClient("classpath:resource/client.conf");
                String url = client.uploadFile(picFile.getBytes(), extName);
                // 把url响应给客户端
                result.setError(YesOrNo.NO.value);
                result.setUrlDB(url);
                result.setUrl(IMAGE_SERVER_BASE_URL + url);
            } catch (Exception e) {
                e.printStackTrace();
                result.setError(YesOrNo.YES.value);
                result.setMessage("图片上传失败");
            }
            return result;
        }

    最后配置:

    tracker_server=192.168.1.188:22122

  • 相关阅读:
    C# winform应用程序运行后,bin文件夹中会自动生成3个文件和一个应用程序
    c# 进程间通信
    C# Winform 右下角弹出框
    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则 笔记
    C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
    《C# 设计模式》笔记: 第5章 继承
    《C# 设计模式》笔记: 第8章 简单工厂模式
    手动汉化 VS 2005 的代价
    《C# 设计模式》笔记: 第7章 C#中的数组、文件和异常
    收到微软寄给我的 SQL Server 2005 Beta3 光盘
  • 原文地址:https://www.cnblogs.com/leechenxiang/p/7299897.html
Copyright © 2020-2023  润新知