上传插件dropzone.js实例
dropzone.js默认是Ajax上传图片给服务器,那么如何获取到图片名呢?其实我们是可以通过dropzone的success函数获取到服务器返回的数据
dropzone.js在HTML的配置如下;
Dropzone.autoDiscover = false;//防止报"Dropzone already attached."的错误
$(".dropzone").dropzone({
url: "__URL__/upload/",
addRemoveLinks: true,
dictRemoveLinks: "x",
dictCancelUpload: "x",
paramName:"userImg",
maxFiles: 10,
maxFilesize: 5,
acceptedFiles: "image/*",
init: function() { //res为服务器响应回来的数据
this.on("success", function(file, res) { //将json字符串转换成json对象
var obj = JSON.parse(res); //res为dropzone.js返回的图片路经
file.path = res; if( obj.status == 200 ){ //将服务器得到的数据生成一个隐藏域。做商品添加的时候就可以获取到了
var input = '<input type="hidden" name="'+obj.details.savename+'" value="'+obj.details.savepath+obj.details.savename+'" />';
$('.myform').append(input); }else{
alert('上传失败');
} }); this.on("removedfile", function(file) { $.ajax({
url: "改成你的php删除图片的路径",
type: "post", //file.path可以获取到点击删除按钮的那张图片
data: { 'path': file.path }
});
}); }
});
PHP的代码如下(Thinkphp代码):
public function upload()
{ /*
添加商品 :商品名、商品图片
*/ // 实例化上传类
$upload = new \Think\Upload(); // 设置附件上传大小
$upload->maxSize = 3145728 ; // 设置附件上传类型
$upload->exts = array('jpg', 'gif', 'png', 'jpeg'); //A开发者写了upload() B开发
// 设置附件上传目录
$upload->savePath = './Public/Uploads/'; //返回上传信息
$info = $upload->uploadOne($_FILES['userImg']);
// dump($info);exit;
if( !$info ) {
// 上传错误提示错误信息
// $this->error($upload->getError());
$data['status'] = 404; //错误信息
$data['msg'] = $upload->getError(); echo json_encode($data); }else{
// 上传成功 (图片路径、图片名字) $data['status'] = 200;
$data['msg'] = 'UPLOAD SUCCESS'; //图片原始名字
$data['details']['originName'] = $info['name'];
$data['details']['savename'] = $info['savename'];
$data['details']['savepath'] = $info['savepath']; echo json_encode($data);
}
}
上传插件dropzone.js实例的更多相关文章
- JavaScript 文件拖拽上传插件 dropzone.js 介绍
http://www.renfei.org/blog/dropzone-js-introduction.html
- java版-JQuery上传插件Uploadify使用实例
摘自:http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 运行效果: 包结构图: 后台JAVA逻辑: package com. ...
- 图片上传插件用法,JS语法【三】
注意点: 作为文件域(<input type="file">)必须要有name属性,如果没有name属性,上传之后服务器是获取不到图片的.如:正确的写法是<inp ...
- PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件
PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件(案例教程) WebUploader作用:http://fex.baidu.com/webuploader/gett ...
- 纯原生js移动端图片压缩上传插件
前段时间,同事又来咨询一个问题了,说手机端动不动拍照就好几M高清大图,上传服务器太慢,问问我有没有可以压缩图片并上传的js插件,当然手头上没有,别慌,我去网上搜一搜. 结果呢,呵呵...诶~又全是基于 ...
- 文件上传插件Uploadify在Struts2中的应用,完整详细实例
—>最近由于项目需要使用到一个上传插件,在网上发现uploadify挺不错,所以决定使用它,但是官网文档和例子是php的,而项目是SSI框架的,所以自己对uploadify在struts2中的使 ...
- js上传插件uploadify自动检测不到flash控件的问题
[问题描述] 项目开发中,由于使用了js的一个上传插件uploadify,下载的是flash版本的,后来在谷歌浏览器上运行时经常报flash控件未安装,虽然下图是uploadify自动检测自动弹出来的 ...
- js插件---IUpload文件上传插件(包括图片)
js插件---IUpload文件上传插件(包括图片) 一.总结 一句话总结:上传插件找到真正上传位置的代码,这样就可以知道整个上传插件的逻辑了, 找资料还是github+官方 1.如何在js中找到真正 ...
- Js 之移动端图片上传插件mbUploadify
一.下载 https://pan.baidu.com/s/1NEL4tkHoK4ydqdMi_hgWcw 提取码:vx7e 二.Demo示例 <div class="weui_uplo ...
随机推荐
- 第十八次ScrumMeeting博客
第十八次ScrumMeeting博客 本次会议于12月8日(五)22时整在3公寓725房间召开,持续20分钟. 与会人员:刘畅.辛德泰.张安澜.赵奕.方科栋. 1. 每个人的工作(有Issue的内容和 ...
- centos7 设置静态IP
centos7 设置静态IP 一.查找配置文件(/etc/sysconfig/network-scripts) [root@bogon network-scripts]# ll 总用量 232 -rw ...
- BugPhobia开发篇章:Beta阶段第II次Scrum Meeting
0x01 :Scrum Meeting基本摘要 Beta阶段第二次Scrum Meeting 敏捷开发起始时间 2015/12/13 00:00 A.M. 敏捷开发终止时间 2015/12/14 22 ...
- [Week17] 个人阅读作业
个人阅读作业Week17 reading buaa software 解决的问题 这是提出问题的博客链接:http://www.cnblogs.com/SivilTaram/p/4830893 ...
- c++中队列queue和栈stack的基本操作
1.queue 模板类的定义在<queue>头文件中. 定义queue 对象的示例代码如下:queue<int> q1;queue<double> q2; queu ...
- Java标识符和关键字(static,final,abstract,interface)
本文的主要内容如下 1.标识符合关键字 2.Java中的关键字 3.static关键 字 4.static方法 5.静态代码块 6.static修饰符综述 7.final关键字 8.final修饰 ...
- Win2008r2 由ESXi 转换到 HyperV的处理过程
1. 大部分2008r2 采取了 windows loader的方式激活 这种方式 会导致hyperV 启动失败 因为他家在了错误的bios类型 所以第一步建议 使用windows loader 卸载 ...
- laravel(一)
laravel文档:https://d.laravel-china.org/docs/5.5/ 一.composer安装laravel 在文档中找的create-project命令,最后加上项目名称, ...
- 二叉树的Java实现及特点总结
二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加.但是他也有自己的缺点:删除操作复杂. 我们先介绍一些关于二叉树的概念名词. 二叉树: ...
- Python【知识点】面试小点列表生成式小坑
1.问题 有这么一个小面试题: 看下面代码请回答输出的结果是什么?为什么? result = [lambda x: x + i for i in range(10)] print(result[0]( ...