PHP结合zyupload多功能图片上传实例,支持拖拽和裁剪、可以自定义高度和宽度,类型,远程上传地址等。

zyupload上传基本配置

 1 $("#zyupload").zyUpload({
 2     width: "650px", // 宽度
 3     height: "400px", // 宽度
 4     itemWidth: "140px", // 文件项的宽度
 5     itemHeight: "115px", // 文件项的高度
 6     url: "./up.php", // 上传文件的路径
 7     fileType: ["jpg", "png", "txt", "js"], // 上传文件的类型
 8     fileSize: 51200000, // 上传文件的大小
 9     multiple: true, // 是否可以多个文件上传
10     dragDrop: true, // 是否可以拖动上传文件
11     tailor: true, // 是否可以裁剪图片
12     del: true, // 是否可以删除文件
13     finishDel: false, // 是否在上传文件完成后删除预览
14     /* 外部获得的回调接口 */
15     onSelect: function(selectFiles, allFiles) {    // 选择文件的回调方法  selectFile:当前选中的文件  allFiles:还没上传的全部文件
16         console.info("当前选择了以下文件:");
17         console.info(selectFiles);
18     },
19     onDelete: function(file, files) {              // 删除一个文件的回调方法 file:当前删除的文件  files:删除之后的文件
20         console.info("当前删除了此文件:");
21         console.info(file.name);
22     },
23     onSuccess: function(file, response) {          // 文件上传成功的回调方法
24         console.info("此文件上传成功:");
25         console.info(file.name);
26         console.info("此文件上传到服务器地址:");
27         console.info(response);
28         $("#uploadInf").append("<p>上传成功,文件地址是:" + response + "</p>");
29     },
30     onFailure: function(file, response) {          // 文件上传失败的回调方法
31         console.info("此文件上传失败:");
32         console.info(file.name);
33     },
34     onComplete: function(response) {                 // 上传完成的回调方法
35         console.info("文件上传完成");
36         console.info(response);
37     }
38 });

远程上传up.php

 1 $uploaddir = 'uploads/';
 2 $name = $_FILES['file']['name'];
 3 $uploadfile = $uploaddir . $name;
 4 $type = strtolower(substr(strrchr($name, '.'), 1));
 5 //获取文件类型
 6
 7 if (!in_array($type, $typeArr)) {
 8     echo "请上传jpg,png或gif类型的图片!";
 9     exit;
10 }
11 print "<pre>";
12 if (move_uploaded_file($_FILES['file']['tmp_name'], $uploaddir . $_FILES['file']['name'])) {
13     print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
14     print_r($_FILES);
15 } else {
16     print "Possible file upload attack!  Here's some debugging info:\n";
17     print_r($_FILES);
18 }
19 print "</pre>";

zyupload四种不同的PHP上传demo的更多相关文章

  1. 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  2. shutil模块和几种文件上传Demo

    一.shutil模块 1.介绍 shutil模块是对os中文件操作的补充.--移动 复制 打包 压缩 解压 2.基本使用 1. shutil.copyfileobj(文件1, 文件2, 长度) 将文件 ...

  3. webuploader 跨域上传demo(还没有写记录一下)

    webuploader 跨域上传demo(还没有写记录一下)

  4. jquery.form 和MVC4做无刷新上传DEMO

    jquery.form 和MVC4做无刷新上传DEMO HTML: <script src="~/Scripts/jquery-1.10.2.min.js"></ ...

  5. 分享图片压缩上传demo,可以选择一张或多张图片也可以拍摄照片

    2016-08-05更新: 下方的代码是比较OLD的了,是通过js进行图片的剪切 旋转 再生成,效率较低. 后来又整合了一个利用native.js本地接口的压缩代码 ,链接在这 .页面中有详细的说明, ...

  6. SpringMVC(四)SpringMVC实现文件上传、异常拦截去、整合SSM

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.文件上传 文件上传在SpringMVC中如何实现: 准备一个文件上传的表单 导入文件上传需要的jar ...

  7. 淘宝(阿里百川)手机客户端开发日记第十四篇 jsp提交含有上传控件表单乱码问题

    今天我来总结昨天开发的一个简单的jsp web 应用程序时,在做一个调教表单,从servlet端获取数据,这个表单里含有上传文件控件.如果我们在测试的时候,获取数据的是乱码,这时,大家可以先去掉上传控 ...

  8. mvc5 + ef6 + autofac搭建项目(四).1视屏上传生成截图

    即上一篇中上传涉及到的 一个视频生成截图的问题,这个很简单,这是上一篇中的代码片段 #region 视频上传,生成默认展示图片(自动剪切) try { string fileSavePath = Da ...

  9. Struts2学习(四)利用ajax异步上传

    上一篇说到怎样在struts2中进行上传下载.我们使用了struts的标签通过表单提交的方式,但大家知道表单提交会造成页面总体的刷新,这样的方式很不友好,那我们今天就来说说怎样结合ajax方式进行异步 ...

随机推荐

  1. nil/Nil/NULL/NSNull

    nil/Nil/NULL/NSNull的区别 一个简单的小例子: NSObject *obj = nil; NSLog(@"%@",obj); =>null NSObject ...

  2. REST API TO MiniProgram 上线WordPress官方插件库

    全新开发的用于 wordpress微信小程序的插件 REST API TO MiniProgram今天上线WordPress官方插件库.这个插件的上一个版本叫:wp-rest-api-for-app, ...

  3. 微信小程序web-view的简单思考和实践

    微信小程序的组件web-view推出有一段时间了,这个组件的推出可以说是微信小程序开发的一个重要事件,让微信小程序不会只束缚在微信圈子里了,打开了一个口子,这个口子或许还比较小,但未来有无限可能. 简 ...

  4. 一个WPF只能输入数字的行为。

    没啥好说的,直接上代码: public class NumberInputBehaviour : Behavior<TextBox> { protected override void O ...

  5. vue $refs 无法动态拼接,获取不到对象(转)

    原文地址: http://www.php.cn/js-tutorial-410304.html 本篇文章给大家带来的内容是关于vue $refs中不使用拼接的原因以及解决方法,有一定的参考价值,有需要 ...

  6. (Python基础)文件操作

    对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 命名为7 years Once I was seven years old my momma t ...

  7. mysql中的int和tinyint、varchar和char、DateTime和TimeStamp区别

    一.int和tinyint的区别 大小: tinyint在mysql中占用1个字节 即: 1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方:11111111 = 256 在 ...

  8. (22/24) webpack实战技巧:静态资源集中输出

    工作中会有一些已经存在但在项目中没有引用的图片资源或者其他静态资源(比如设计图.开发文档),这些静态资源有可能是文档,也有可能是一些额外的图片,而在打包时保留这些静态资源,直接打包到指定文件夹中.此时 ...

  9. HTTP客户端识别与Cookie机制

    HTTP识别用户的几种技巧 承载用户身份信息的HTTP首部 客户端IP地址跟踪,通过用户的IP地址对其进行识别 用户登录,用认证方式识别用户 胖URL,一种在URL中潜入识别信息的技术 cookie, ...

  10. sublime text3 离线安装插件方法 package control

    package control 在线安装 一般会出现各种错误 不推荐 离线安装 推荐step1: 打开package control官网https://packagecontrol.io/ step2 ...