jQuery File Upload 是一款非常强大的文件上传处理插件,支持多文件上传,拖拽上传,进度条,文件验证及图片音视频预览,跨域上传等等。

可以说你能想到的功能它都有。你没想到的功能它也有。。

不过由于功能太强大,使用起来还是需要点基本功,否则调试开发会遇到困难。

本文结合官方教程只介绍最基本的上传功能。

以我目前最新的9.7.1版本

下载下来解压到服务器能访问到的地方。

文件如下:

1. 新建一个文件夹MyDemo或者你随意。

把外面的server和js目录拷贝到里面,注意server目录里面包含gae-go、gae-python、php这些后端语言,只保留php就行。

2. 新建一html,内容如下,主要JS和CSS的路径。还有有时候国内无法访问ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js,可以引用本地的jQuery。

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>jQuery File Upload Example</title>
<style>
.bar {
height: 18px;
background: green;
}
</style>
</head>
<body>
<input id="fileupload" type="file" name="files[]" data-url="server/php/" multiple>
<script src="js/jquery-1.11.1.min.js"></script>
<script src="js/vendor/jquery.ui.widget.js"></script>
<script src="js/jquery.iframe-transport.js"></script>
<script src="js/jquery.fileupload.js"></script>
<script>
$(function () {
$('#fileupload').fileupload({
dataType: 'json', // 上传完成后的执行逻辑
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}, // 上传过程中的回调函数
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$(".bar").text(progress + '%');
$('#progress .bar').css(
'width',
progress + '%'
);
}
});
});
</script> <!-- 进度条 -->
<div id="progress">
<div class="bar" style="width: 0%;"></div>
</div>
</body>
</html>

传统上都是用<form>表单提交上传,现在是纯Ajax。需要注意的input的data-url属性,这就是需要php服务端处理的路径。

浏览器打开,以我的为例 http://localhost/my/JS/Plugins/jQuery-File-Upload-master/MyDemo/

由于是在本地测试,为了看到进度进度效果,建议找个大点的(~1G)文件上传。可以直接拖个文件到浏览器窗口中。

效果如下,上传过程中绿色进度条会不停的增加。

F12打开调试面板,耐心等待上传完成,会看到上传完成后,有ajax返回。

地址类似:http://localhost/my/JS/Plugins/jQuery-File-Upload-master/MyDemo/server/php/

返回的数据是JSON格式,内容类似:

{"files":[{"name":"1409665745-8365","size":1472358262,"type":"multipart\/form-data; boundary=----WebKitFormBoundaryxLzvFFmSOiWiY1Ka","error":"The uploaded file exceeds the post_max_size directive in php.ini"}]}

很明显上传文件太大了,超出php.ini限制。先不改了。

如果我们直接丢个图片进去,返回的json类似:

{
"files": [
{
"name": "10095978136d36c635.jpg",
"size": 12479,
"type": "image/jpeg",
"url": "http://localhost/my/JS/Plugins/jQuery-File-Upload-master/MyDemo/server/php/files/10095978136d36c635.jpg",
"thumbnailUrl": "http://localhost/my/JS/Plugins/jQuery-File-Upload-master/MyDemo/server/php/files/thumbnail/10095978136d36c635.jpg",
"deleteUrl": "http://localhost/my/JS/Plugins/jQuery-File-Upload-master/MyDemo/server/php/?file=10095978136d36c635.jpg",
"deleteType": "DELETE"
}
]
}

来到MyDemo\server\php\files 会发现上传的图片,而且thumbnail目录还保存了裁剪过的图片,这都是官方提供的UploadHandler.php的功劳。

至此,一个拖拽上传文件的Demo完成了。但是功能仍然很弱,比如没有文件类型及大小限制,没有前台的错误提示。

官方提供的API有maxFileSize和acceptFileTypes。这在基本版里是不生效的,在UI版里才可以。具体的完善功能见第二篇

详见 maxFileSize and acceptFileTypes not working #760

jQuery File Upload 文件上传插件使用一 (最小安装 基本版)的更多相关文章

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

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

  2. jquery file upload 文件上传插件

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

  3. jQuery File Upload 文件上传插件使用二 (功能完善)

    使用Bootstrap美化进度条 Bootstrap现在几乎是人尽皆知了,根据它提供的进度条组件, 让进度条显得高大尚点 正因为其功能强大,js模块文件之间牵连较深 不好的地方耦合度非常高 重要的参数 ...

  4. jQuery File Upload 图片上传解决方案兼容IE6+

    1.下载:https://github.com/blueimp/jQuery-File-Upload 2.命令: npm install bower install ================= ...

  5. DVWA之File Upload (文件上传漏洞)

    目录 Low: Medium: 方法一:抓包修改文件的type 方法二:00截断 High: Impossible : Low: 源代码: <?php if( isset( $_POST[ 'U ...

  6. jQuery文件上传插件jQuery Upload File 有上传进度条

    jQuery文件上传插件jQuery Upload File 有上传进度条 jQuery文件上传插件jQuery Upload File,插件使用简单,支持单文件和多文件上传,支持文件拖拽上传,有进度 ...

  7. JQuery文件上传插件JQuery.upload.js的用法简介

    JQuery文件上传插件,这个插件很小,用法很简单,效果却很棒.注意:JQuery版本要求1.8及以上,大家执行如果没效果,则检查JQuery版本,如果是1.8及以上,则该插件源码中的.size()需 ...

  8. JQuery文件上传插件ajaxFileUpload在Asp.net MVC中的使用

    0 ajaxFileUpload简介 ajaxFileUpload插件是一个非常简单的基于Jquery的异步上传文件的插件,使用过程中发现很多与这个同名的,基于原始版本基础之上修改过的插件,文件版本比 ...

  9. 可拖拽和带预览图的jQuery文件上传插件ssi-uploader

    插件描述:ssi-uploader是一款带预览图并且可以拖拽文件的jQuery ajax文件上传插件.该文件上传插件支持AJAX,支持多文件上传,可控制上的文件格式和文件大小,提供各种回调函数,使用非 ...

随机推荐

  1. Nginx卸载重装问题

    1.删除nginx,-purge包括配置文件 sudo apt-get --purge remove nginx   2.移除全部不使用的软件包 sudo apt-get autoremove   3 ...

  2. BZOJ1116:[POI2008]CLO(并查集)

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个t ...

  3. BZOJ5301:[CQOI2018]异或序列(莫队)

    Description 已知一个长度为 n 的整数数列 a[1],a[2],…,a[n] ,给定查询参数 l.r ,问在 [l,r] 区间内,有多少连续子 序列满足异或和等于 k . 也就是说,对于所 ...

  4. 【[ZJOI2006]物流运输】

    一直不会做,觉得这是一道神题 于是万般无奈下去借鉴抄了一下题解 发现这就是一道套路题 我们用\(dp[i]\)表示前\(i\)天的最小总花费,于是我们就可以用一个常规的老套路来做了 那就是枚举断点 我 ...

  5. Tomcat整体介绍

    来源 本文整理自 <Tomcat内核设计剖析>.<Tomcat结构解析> Tomcat 整体架构 ​ 如上图所示:包含了Tomcat内部的主要组件,每个组件之间的层次包含关系很 ...

  6. Git如何从github上pull别人的项目

    1:使用git方式导入项目 菜单-File->import->Git->Projects from Git 2:选择某个服务器上的资源 3:选择需要pull的地址 后面需要自己加上 ...

  7. 轻量ORM-SqlRepoEx (六) JOIN

    示例使用的是最新 SqlRepoEx 2.0.2 可在:https://github.com/AzThinker/SqlRepoEx2.0Demo 或:https://gitee.com/azthin ...

  8. ie浏览器下载文件时文件名乱码

    做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...

  9. iOS之iOS中的(null)、<null>、 nil 的问题

      摘要: 你有没有过这样的经历,就是界面上显示出类似<null>.(null)这样一些东西,有时候还会莫名其妙的闪退.反反复复真是曰了犬,今天来总结一下这个问题的解决方法 前段时间开发过 ...

  10. Windows10:Opencv4.0+Opencv4.0.1_contrib编译

    操作系统:windows10 64bit 已安装工具:VS2017 64bit,cmake3.12bit. 安装Cmake:到cmake下载3.12及以上版本,64bit, 选择windows下的安装 ...