jq plupload多文件上传插件demo

浏览:5896 发布日期:2016/03/12 分类:用法示例 关键字: thinkph,plupload
Plupload有以下功能和特点:

1、拥有多种上传方式:HTML5、flash、silverlight以及传统的<input type=”file” />。Plupload会自动侦测当前的环境,选择最合适的上传方式,并且会优先使用HTML5的方式。所以你完全不用去操心当前的浏览器支持哪些上传方式,Plupload会自动为你选择最合适的方式。

2、支持以拖拽的方式来选取要上传的文件

3、支持在前端压缩图片,即在图片文件还未上传之前就对它进行压缩

4、可以直接读取原生的文

经过好几天的调试,这个插件终于能运行了的,效果达到预期效果 这是运行效果图

前端代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Plupload - Queue widget example</title>
<link rel="stylesheet" href="__PUBLIC__/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" media="screen" />
</head>
<body style="font: 13px Verdana; background: #eee; color: #333">
<form method="post" action="__MODULE__/Index/form" id='f11' enctype="multipart/form-data">

<div style="float: left; margin-right: 20px">

<div id="flash_uploader" style="width: 500px; height: 330px;">Your browser doesn't have Flash installed.</div>

</div>


<div id="aaaa"></div>
<input type="submit" value="Send" />
</form>
<script src="__PUBLIC__/plupload/js/jquery-1.8.3.min.js"></script>
<!--引入核心文件 S-->
<script type="text/javascript" src="__PUBLIC__/plupload/js/plupload.full.min.js"></script>

<script type="text/javascript" src="__PUBLIC__/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
<!--引入核心文件 E-->
<script src="__PUBLIC__/plupload/js/i18n/zh_CN.js"></script><!--引入中文包-->
<!-- debug
<script type="text/javascript" src="__PUBLIC__/plupload/js/moxie.js"></script>
<script type="text/javascript" src="__PUBLIC__/plupload/js/plupload.dev.js"></script>
<script type="text/javascript" src="__PUBLIC__/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
-->
<script type="text/javascript">
$(function() {
// Setup flash version
$("#flash_uploader").pluploadQueue({
// General settings
runtimes : 'html5,flash,silverlight,html4',//指定上传方式
url : '__MODULE__/Index/Upload',//后台url
chunk_size : '1mb',//分片大小
unique_names : true,//文件名是否唯一
multiple:true,
filters : {
max_file_size : '1mb', //最大只能上传1mb的文件
mime_types: [
{title : "Image files", extensions : "jpg,gif,png"}, //限制上传类型

],
prevent_duplicates:true, //是否选取重复的文件
},
//压缩设置
resize: {
width: 100,
height: 100,
crop: true, //是否裁剪图片
quality: 60,
preserve_headers: false//:压缩后是否保留图片的元数据,true为保留,false为不保留,默认为true。
},



init:{
FileUploaded:function(up,file,info)
{
var response = $.parseJSON(info.response);
//console.info(response);//调试信息 打印自己看



//console.info(up);//调试信息 打印自己看

//console.info(file);//调试信息 打印自己看

//console.info(info);//调试信息 打印自己看
if (info.status) {


$('#aaaa').append('文件路径:<input type="hidden" name="fileUrl[]" value="'+response+'"/></br>');


//这块代码很关键 用于当上传完一个文件后 继续显示添加文件和开始上传按钮
if(up.total.uploaded==up.files.length)
{
$(".plupload_buttons").css("display","inline");
$(".plupload_upload_status").css("display","inline");
$(".pluploaded_start").addClass("plupload_disabled");
}

up.disableBrowse(false);
}},

FilesAdded: function (up, files) {
//文件上传数量限制
$.each(up.files, function (i, file) {
//console.info(up.files.length);
if (up.files.length >2) {
up.splice(2, up.files.length-2);
// up.stop();
alert('只能上传两个文件');

return false;
}


});
},
UploadComplete:function(up,files)
{

up.refresh();
},

QueueChanged:function(up)
{
$(".plupload_start").removeClass("plupload_disabled");
}
},
// Flash settings
flash_swf_url : '__PUBLIC__/plupload/js/Moxie.swf',
silverlight_xap_url : '__PUBLIC__/plupload/js/Moxie.xap'
});




});
</script>

</body>
</html>
后后台控制器代码如下:
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {

//处理文件上传
public function upload()
{
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->savePath = './Public/Uploads/'; // 设置附件上传目录
// 上传文件
$info = $upload->upload();
if(!$info) {
// 上传错误提示错误信息
$this->error($upload->getError());
}else
{
// 上传成功
echo json_encode($info['file']['savepath'].$info['file']['savename']);
}
}
//加载上传插件
public function index()
{
$this->display();
}

//后台处理数据
public function form()
{
dump($_POST);
}

以上为全部代码 不明白的加我扣扣:1306701423
插件中文开发文档:http://www.cnblogs.com/2050/p/3913184.html
评论( 相关
后面还有条评论,点击查看>>