博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery的ajaxFileUpload的使用
阅读量:6572 次
发布时间:2019-06-24

本文共 3157 字,大约阅读时间需要 10 分钟。

通过查看插件的源码发现,插件的实现原理大概就是创建一个隐藏的表单和iframe然后用JS去提交,获得返回值;

第一步:

首先想要使用ajaxFileUpload插件必须要在html中引入两个js(具体的URI根据自己的项目结构进行调整);

引入 JQuery和 ajaxfileupload.js 即可;

第二步:

上传的input的html的代码

第三步:

js的代码,在js中我加入了图片的格式的验证

function upload_cover(obj) {        ajax_upload(obj.id, function(data) { //function(data)是上传图片的成功后的回调方法            var isrc = data.relatPath.replace(/\/\//g, '/'); //获取的图片的绝对路径            $('#image').attr('src', basePath+isrc).data('img-src', isrc); //给的src赋值去显示图片        });    }    function ajax_upload(feid, callback) { //具体的上传图片方法        if (image_check(feid)) { //自己添加的文件后缀名的验证            $.ajaxFileUpload({                fileElementId: feid,    //需要上传的文件域的ID,即的ID。                url: basePath+'/houseKeeping/clean/upload', //后台方法的路径                type: 'post',   //当要提交自定义参数时,这个参数要设置成post                dataType: 'json',   //服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。                secureuri: false,   //是否启用安全提交,默认为false。                async : true,   //是否是异步                success: function(data) {   //提交成功后自动执行的处理函数,参数data就是服务器返回的数据。                    if (callback) callback.call(this, data);                },                error: function(data, status, e) {  //提交失败自动执行的处理函数。                    console.error(e);                }            });        }    }    function image_check(feid) { //自己添加的文件后缀名的验证        var img = document.getElementById(feid);        return /.(jpg|png|gif|bmp)$/.test(img.value)?true:(function() {            modals.info('图片格式仅支持jpg、png、gif、bmp格式,且区分大小写。');            return false;        })();    }

第四步:

上传图片的后台的代码:后台使用的是SpringMVC框架,我是文件上传到服务器后,新建一个文件夹将图片存储,然后将图片的相对路径存到数据库中,

想要显示的时候就去数据库中查找绝对路径。(具体的上传图片根据自己的项目去使用具体的方法,我的可以提供一种思路)

//上传图片    @RequestMapping(value = "/upload", method = RequestMethod.POST)    @ResponseBody    public Map
upload(HttpServletRequest request) throws Exception { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file"); String rootDir = request.getRealPath("/"); String relatDir = File.separator+"resources"+File.separator+"bussiness" +File.separator+"uploadPath"+File.separator+"houseKeeping_imgs"; //文件夹不存在则创建 File fdir = new File(rootDir+relatDir); if (!fdir.exists()) { fdir.mkdirs(); } String oriName = file.getOriginalFilename(); String newName = new Date().getTime()+"_"+oriName; File tempFile = new File(fdir.getPath()+File.separator+newName); file.transferTo(tempFile); Map
result = new HashMap<>(); result.put("oriName", oriName); result.put("realName", tempFile.getName()); result.put("relatPath", relatDir+File.separator+newName); return result; }

插件所需的资源地址如下:(输入链接可以下载)

http://files.cnblogs.com/files/zhanghaoliang/%E6%8F%92%E4%BB%B6%E6%89%80%E9%9C%80%E7%9A%84%E8%B5%84%E6%BA%90.zip

 

转载于:https://www.cnblogs.com/tongxuping/p/9060245.html

你可能感兴趣的文章
iOS中真机连接电脑运行程序出现问题
查看>>
java安卓如何实现定义接口
查看>>
Union大小
查看>>
南邮CTF--bypass again
查看>>
函数的渐近增长
查看>>
动态参数
查看>>
FirewallD常用命令及设置
查看>>
Slight difference between C++ and C
查看>>
c++类的嵌套(1)
查看>>
Android SqlLite数据库的创建、增、删、改、查、使用事务
查看>>
phpStorm无法使用svn1.8的解决办法
查看>>
Talk is cheap,show me the code
查看>>
[Java]知乎下巴第3集:来人啊快把知乎的答案装到篮子里去
查看>>
解决中文乱码的问题
查看>>
前端异常测试
查看>>
JSON与localStorage的爱恨情仇
查看>>
input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格
查看>>
IOS上iframe的滚动条失效的解决办法
查看>>
C++_012C++11的语法新特性
查看>>
Git学习笔记:常用命令总结
查看>>