图片上传的第二种形式

简介: 之前有说了一种以base64的图片上传形式,这次来说说另外一种,其实很简单,很早以前都是在form提交的时候再controller中处理,现在基本不会这么做,都是通过ajax来实现异步上传的首先需要引入jquery.

之前有说了一种以base64的图片上传形式,这次来说说另外一种,其实很简单,很早以前都是在form提交的时候再controller中处理,现在基本不会这么做,都是通过ajax来实现异步上传的

首先需要引入jquery.ui.widget.js以及jquery.fileupload.js这两个js,

HTML代码:

<div>

    <input id="idcardImagePositiveFileUpload" type="file" name="idcardImagePositiveFileUpload" data-url="<%=request.getContextPath() %>/file/upload.action" accept=".png,.jpeg,.jpg"/>
                                                    
    <div id="idcardImagePositiveContent"></div>
                                                    
</div>

构建js对象并且初始化:

$('#idcardImageNegativeUpload').fileupload({
            dataType: 'json',
            done: function (e, data) {
                console.log(data);  
                
                if (data.result.status != "200") {
                    alert("图片大小不能超过2M...");
                } else {
                    $.each(data.result.data, function (index, file) {
                      $("#idcardImageNegativeContent").html("<a href='" + file.url + "' target='_blank'><img src='" + file.url + "' width='120'></img></a>");
                      $("#idcardImageNegative").attr("value", file.urlDB);
                  }); 
                }
            },
        
            change: function (e, data) {
                var size = data.files[0].size;
            
                if((size / 1024 / 1024) > 2) {
                    alert("图片大小不能超过2M...");
                    return false;
                }
               }
        });

后台controller以及service处理,需要调用fastdfs客户端上传

@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);
    }
@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;
    }

​上传的效果如此,最后通过上传后的路径,直接使用form序列化再提交保存到数据库中即可

 

最近实在很忙,时间很碎片化,一方面公司的产品急着做,另一方面又在做自己的产品以及一套开源权限,同时又在着手准备开公司的事情,所以在文章更新的频率上放缓了脚步,希望大家谅解,等事情告一段落后给大家每人发个红包(限公众号粉丝)哈~!

 

相关文章
|
8月前
|
存储 对象存储 C++
图片上传(为写博客而单独发布的文章,存储以后可能用得到的图片)
图片上传(为写博客而单独发布的文章,存储以后可能用得到的图片)
|
3月前
|
JavaScript 前端开发 数据可视化
Element Plus图片上传组件二次扩展
Element Plus图片上传组件二次扩展
107 0
|
6月前
|
JavaScript 前端开发
文本,粘贴事件如何实现,先实现一个小目标,如何存入图片,从本地生成源码,先转成base64,ctrl + v这张图片就显示出来了怎样实现的,Vue可以有方法可以获取粘贴的所有元素,转base64字符串
文本,粘贴事件如何实现,先实现一个小目标,如何存入图片,从本地生成源码,先转成base64,ctrl + v这张图片就显示出来了怎样实现的,Vue可以有方法可以获取粘贴的所有元素,转base64字符串
|
存储 JavaScript 前端开发
Java实现图片的上传和显示
Java实现图片的上传和显示
563 0
|
前端开发
前端学习案例1-blob对象实现文件的下载和图片预览1
前端学习案例1-blob对象实现文件的下载和图片预览1
160 0
前端学习案例1-blob对象实现文件的下载和图片预览1
|
前端开发
前端学习案例2-blob对象实现文件的下载和图片预览2
前端学习案例2-blob对象实现文件的下载和图片预览2
128 0
前端学习案例2-blob对象实现文件的下载和图片预览2
|
存储 小程序
小程序图片上传,存储,获取,显示(含源码)
小程序图片上传,存储,获取,显示(含源码)
373 0
|
小程序 前端开发 JavaScript
小程序上传多张图片到springboot后台,返回可供访问的图片链接
小程序上传多张图片到springboot后台,返回可供访问的图片链接
11747 0
|
前端开发 JavaScript
JS根据文件类型返回相应状态和图片 简单易懂 还不来多学一点
在前端开发中,我们经常需要判断文件类型并返回相应的状态,以便在页面中展示相应的图标。本文将介绍一种根据文件类型返回相应状态的方法。
|
前端开发 数据库
eggjs 怎么实现返回 base64 图片的接口给前端回显头像?
eggjs 怎么实现返回 base64 图片的接口给前端回显头像?
290 0
eggjs 怎么实现返回 base64 图片的接口给前端回显头像?