jquery file upload php代码分析
首先进入构造方法 __construct() 再进入 initialize()
因为我是post方式传的数据  在进入initialize()中的post()
也就是说 经过上面的分支 最终进入的post()  在1255行

看到这个
        $upload = isset($_FILES[$this->options['param_name']]) ?
            $_FILES[$this->options['param_name']] : null;
上传后tmp文件的地址就在$upload中
$this->options['param_name'] 根据最前面的定义  这里的值是files
和DEMO中的页面的值一致  在html中 name="files[]"
因为是php  对多文件框的处理 页面中名字后面要加[]  但是后台仍是files  因为我只需变量名 []只是说明是多文件框
所以这里 upload 的值就是$_FILES["files"]

PS:看这里http://www.cnblogs.com/cart55free99/p/3495387.html
要获取到tmp文件路径 首先要从$_FILES获取值  $_FILES["xxx"]
xxx和页面上的name属性要匹配

看到1280行
$file_name ? $file_name : $upload['name'][$index],
如果$file_name是空 那么传入handle_file_upload中的第二个参数
就是$upload['name'][$index]
也就是$_FILES["files"]['name'][$index]  也就是文件本身的名字

=======================================
关于$this->get_server_var()
在1101行有定义
    protected function get_server_var($id) {
        return isset($_SERVER[$id]) ? $_SERVER[$id] : '';
什么是$_SERVER呢?
参考http://www.chhua.com/web-note2893

==========================================

关于删除
当上传后服务器端传来的json中一个file数据含有deleteType 和 deleteUrl项时  页面就会显示DELETE按钮
否则就只显示黄色的cancel按钮
点击删除按钮 会发送一个含有待删除文件名的带参请求  同时这个请求的TYPE是DELETE  (请求TYPE种类:PUT GET POST...)
比如
Request URL:http://localhost/jQuery-File-Upload-8.8.7/server/php/?file=index.jpg
Request Method:DELETE
那么在153行左右 initialize函数就进入delete分支  
delete()在967行  进入delete后通过isFile()作判断看文件是否存在  之后就可以删除文件  unlink()是删除文件函数

关于缩略图
约303行 create_scaled_image()函数就是创建缩略图的 其中version是用来计算版本号  比如已经有pic图片 再上传同名图片就是pic(1)
这里的options在后面有用到  options是一个数组  后面取options['crop']的值 来看看所上传的图片的缩略图是否需要裁减(有些图片本身很小 无需裁减 不过大部分图片都需要裁减)

约383行 imagecopyresampled — 重采样拷贝部分图像并调整大小  调整图片后写入  394行这里看不明白  但是write_image不是函数名

例如在44行
'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',

$_SERVER['SCRIPT_FILENAME']:当前运行 PHP程序的绝对路径及文件名。
dirname(XXX) 则是获取xxx所在的目录(如果XXX是目录就是获得XXX父及目录)

因此这里upload_dir 就是上传文件的目标目录

PS 另外一些get_server_var的信息参考http://stackoverflow.com/questions/18478053/how-do-i-change-the-default-upload-path-for-jquery-file-upload

上传图片============================================================
Add files delete必需
jquery.fileupload-process.js   jquery.fileupload-ui.js  jquery.fileupload.js  main.js

非必须
validate不是必需  它是用来检测文件大小 格式的的合法性的
app.js  audio  video  transport
image  -----没有image可以上传 只是在选择文件后没有上传前这个时候   没有缩略图

jQuery File Upload 插件 php代码分析的更多相关文章

  1. JQuery File Upload 插件 出现 “empty file upload result” 错误的解决方案。

    本例中采用的是 JQuery File Upload + ASP.NET 的方式, Google了大半天基本没有找到合理的解决方案,倒是在 NodeJS的一遍博客中找到了灵感:http://www.i ...

  2. jquery file upload + asp.net 异步多文件上传

    百度了很久,国内一直 找不到 使用jquery file upload 插件 +asp.net 的相关代码 一开始使用 jquery uploadify ,一款基于 flash的插件,但是不支持 Sa ...

  3. jQuery File Upload文件上传插件简单使用

    前言 开发过程中有时候需要用户在前段上传图片信息,我们通常可以使用form标签设置enctype=”multipart/form-data” 属性上传图片,当我们点击submit按钮的时候,图片信息就 ...

  4. jQuery File Upload 文件上传插件使用一 (最小安装 基本版)

    jQuery File Upload 是一款非常强大的文件上传处理插件,支持多文件上传,拖拽上传,进度条,文件验证及图片音视频预览,跨域上传等等. 可以说你能想到的功能它都有.你没想到的功能它也有.. ...

  5. jquery file upload 文件上传插件

    1. jquery file upload 下载 jquery file upload Demo 地址:https://blueimp.github.io/jQuery-File-Upload/ jq ...

  6. jQuery File Upload 单页面多实例的实现

    jQuery File Upload 的 GitHub 地址:https://github.com/blueimp/jQuery-File-Upload 插件描述:jQuery File Upload ...

  7. 用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮

    需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为 ...

  8. jQuery File Upload的使用

    jQuery File Upload 是一个Jquery文件上传组件,支持多文件上传.取消.删除,上传前缩略图预览.列表显示图片大小,支持上传进度条显示等,以下就介绍一下该插件的简单使用 1.需要加载 ...

  9. jquery file upload示例

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79258158 jquery file upload是一款实用的上传文件插件,项目中刚好用 ...

随机推荐

  1. 使用Vitamio打造自己的Android万能播放器(7)——在线播放(下载视频)

    前言 本章将实现非常实用的功能——下载在线视频.涉及到多线程.线程更新UI等技术,还需思考产品的设计,如何将新加的功能更好的融入到现有的产品中,并不是简单的加一个界面就行了,欢迎大家交流产品设计和技术 ...

  2. javascript 获取调用属性的对象

    最近碰到一个javascript 的小问题,是和闭包有关的,来自cnode 论坛,很有意思. var o = (function() { var person = { name: 'Vincent', ...

  3. 微软URLRewriter.dll的url重写在.net简单使用

    最近在做一个cms的网站 打算做成伪静态,从博客园上差了很多人的资料,终于实验成功了,原理就不讲了,附上在本地的配置,IIS的配置遇到后在发布. 文章最后附上源码 步骤如下 1.新建网站,添加URLR ...

  4. PHP查询MYSQL表的主键

    $sql = "SELECT * from Person"; $result = mysql_query($sql,$con); while ($property = mysql_ ...

  5. ios 加水印

    1.加文字   -(UIImage *)addText:(UIImage *)img text:(NSString *)text1  {           //get image width and ...

  6. 一、ThinkPHP的介绍

    一.ThinkPHP的介绍 //了解 MVC M - Model 模型 工作:负责数据的操作 V - View 视图(模板) 工作:负责前台页面显示 编写html代码 C - Controller 控 ...

  7. POJ 1556 The Doors(计算几何+最短路)

    这题就是,处理出没两个点.假设能够到达,就连一条边,推断可不能够到达,利用线段相交去推断就可以.最后求个最短路就可以 代码: #include <cstdio> #include < ...

  8. hdu 4105 贪心思想

    淋漓尽致的贪心思想 波谷一定是一位数.波峰一位数不够大的时候加入到两位数就一定够大了的. 当在寻找波谷碰到零了就自然当成波谷. 当在寻找波峰时碰到零时,将前面的波谷加到前一个波峰上.让当前的零做波谷, ...

  9. The Linux device model

    /sys和 /dev的疑问 1./dev 下放的是设备文件,是由应用层mknod创建的文件.假设底层驱动对mknod的设备号有相应的驱动,如open等函数.那么应用层open "/dev/* ...

  10. 交换机VLAN研究

    这两天在研究openWRT的网络接口问题,涉及到了交换机的一些概念,主要是跟VLAN相关的,在此总结一下. VLAN在802.11Q中定义,802.11Q帧格式如下图所示: 交换机示意图如下图所示: ...