sae storage 使用uploadify插件进行文件批量上传
uploadify插件在文件上传方面还是很不错的,这不我需要往sae 的storage上上传文件,就用了它。
下面我就分享一下如何实现的吧。
我们先到官网下载最新的uploadify最新的插件包。
在页面中引用以下必须js/css文件,注意uploadify是基于Jquery的所以必须在之前引用一下Jquery包。
<link rel='stylesheet' href='../script/uploadify/uploadify.css?v=2' type='text/css' />
<script type="text/javascript" src="../script/uploadify/jquery.min.js"></script>
<script type="text/javascript" src="../script/uploadify/jquery.uploadify.min.js"></script>
页面中定义上传的容器
<div id="file_upload"></div>
然后创建上传插件
$('#file_upload').uploadify({
'onSelect' : function(file){
},
'formData': {
'token':'<?php echo $token; ?>', //token
'userid':'<?php echo $current_user->ID; ?>',
'email':'<?php echo $current_user->user_email; ?>'
},
'removeCompleted':false,
'buttonText' : '选择文件',
'swf' : '../script/uploadify/uploadify.swf',
'uploader' : 'http://codeo.cn/wp-content/themes/xiu-new/pages/co_upload.php',
'method' : 'POST',
'fileObjName':'imgFile',
'queueID':'queue',
'fileSizeLimit':'200k',
'onUploadSuccess' : function(file, data, response) {
data=eval("("+data+")");
if(data.s){
$("#"+file.id).find(".data").html("-完成");
var cancel=$('#'+file.id).find(".cancel a");
if (cancel) {
cancel.attr("rel", data);
cancel.click(function () {
//删除文件及数据
});
}
}else{
$("#"+file.id).find(".data").html("失败:"+data.m);
}
},
'onCancel':function(file){
}
,'overrideEvents': ['onSelectError', 'onDialogClose'],
//返回一个错误,选择文件的时候触发
'onSelectError': function (file, errorCode, errorMsg) {
switch (errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的" + $('#file_upload').uploadify('settings', 'queueSizeLimit') + "个文件!");
break;
case -110:
alert("文件 [" + file.name + "] 大小超出系统限制的" + $('#file_upload').uploadify('settings', 'fileSizeLimit') + "大小!");
break;
case -120:
alert("文件 [" + file.name + "] 大小异常!");
break;
case -130:
alert("文件 [" + file.name + "] 类型不正确!");
break;
}
return true;
},
//检测FLASH失败调用
'onFallback': function () {
alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");
}
});
介绍一下uploadify相关参数
- formData:可以填写要传递的参数,以供后台使用;
- uploader:后台处理文件
- overrideEvents:重写事件,以便于自定义提示
- onSelectError:错误提示重写
- onUploadSuccess:每个文件成功后执行的事件,在这里我们可以绑定uploadify的取消按钮的点击事件,实现uploadify的真删除
sae 后台是如何接收uploadify参数进行处理
<?php
//允许的文件后缀
$fileTypes = array('jpg','jpeg','gif','png');
if (!empty($_FILES)) {
//得到上传的临时文件流
$tempFile = $_FILES['imgFile']['tmp_name'];
//得到文件原名
$fileName = $_FILES["imgFile"]["name"];//iconv("UTF-8","GB2312",$_FILES["imgFile"]["name"]); $fileName=strFilter($fileName);
//扩展名
$temp_arr = explode(".", $fileName);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext); if (in_array($file_ext, $fileTypes) === false) {
echo "2";
exit;
}
//传值 本次唯一id
$tank=$_POST['token'];
$userid=$_POST['userid'];
$email=$_POST['email']; $file_dir=date("Y/m/d").'/'; $storage = new SaeStorage();
$domain = 'codeku';
$destFileName = $file_dir.create_guid().'_'.$fileName;
$srcFileName = $tempFile;
//$attr = array('encoding'=>'gzip');
$result = $storage->upload($domain,$destFileName, $srcFileName);
if(!$result) {
echomsg('false','文件上传失败!');
exit;
}
if($result){
//也可以插入数据库等操作
}
echomsg('true','操作成功!'.$destFileName.$fileName);
}
?>
sae 保存文件核心方法是
$result = $storage->upload($domain,$destFileName, $srcFileName);
接收uploadifyformDatapost数据方式$_POST['token'];。
sae storage 使用uploadify插件进行文件批量上传的更多相关文章
- JQUery利用Uploadify插件实现文件异步上传(十一)
一:简介: Uploadify是JQuery的一个上传插件,实现的效果非常好,带进度显示 ,且Ajax异步,能一次性上传多个文件,功能强大,使用简单 1.支持单文件或多文件上传,可控制并发上传的文件数 ...
- jquery的uploadify插件实现的批量上传V3.2.1版
你需要如下配置(包括引入文件)HTML: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&quo ...
- 带进度条的文件批量上传插件uploadify
有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...
- 利用uploadify+asp.net 实现大文件批量上传。
前言 现在网上文件上传组件随便一搜都是一大堆,不过看大家一般都在用uploadify这个来上传文件.由于项目需要,我在来试了一下.因为第一次使用,也遇到了很多问题,特此记录! ------------ ...
- jquery文件批量上传控件Uploadify3.2(java springMVC)
人比較懒 有用为主 不怎么排版了 先放上Uploadify的官网链接:http://www.uploadify.com/ -->里面能够看到PHP的演示样例,属性说明,以及控件下载地址.分f ...
- 文件批量上传的工具,要实现暂停继续、断点续传等功能(使用QtNetwork和QHttpMultiPart,和定时器检查超时)
最近在做一个文件批量上传的工具,要实现暂停继续.断点续传等功能.利用Qt自带的QtNetwork模块,完成这些需求并没有费多少周章,主要思路就是将文件分块,然后用while循环依次传输.具体实现代码比 ...
- 文件批量上传-统一附件管理器-在线预览文件(有互联网和没有两种)--SNF快速开发平台3.0
实际上在SNF里使用附件管理是非常简单的事情,一句代码就可以搞定.但我也要在这里记录一下统一附件管理器能满足的需求. 通用的附件管理,不要重复开发,调用尽量简洁. 批量文件上传,并对每个文件大小限制, ...
- 使用WebUploader实现文件批量上传,进度条显示功能
知识点:利用WebUploader,实现文件批量上传,并且实时显示文件的上传进度 参考官方文档:http://fex.baidu.com/webuploader/ (1)引入三个资源 JS,CSS,S ...
- SpringMVC+Ajax实现文件批量上传和下载功能实例代码
需求: 文件批量上传,支持断点续传. 文件批量下载,支持断点续传. 使用JS能够实现批量下载,能够提供接口从指定url中下载文件并保存在本地指定路径中. 服务器不需要打包. 支持大文件断点下载.比如下 ...
随机推荐
- 关于模板中的动态取值 ---反射与javascript脚本编译
在项目中经常遇到一个问题,打印word或者打印excel的时候,我们经常使用一对一的赋值或者批量替换的方式来对模板进行修改. 但是现在遇到两种场景: 1.取值是通过自定以方法进行取值的. 如:一个销售 ...
- JavaScript--格式化当前时间
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 简洁的MysqlHelper
把MySqlXXX的类更改为SqlXXX就可以成为sqlHelper. 另外C#也提供了MysqlHelper和sqlHelper,用起来也挺方便的. public class MySqlHelper ...
- 使用gdb调试(转: http://www.cnblogs.com/luchen927/archive/2012/02/07/2339003.html)
一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中.使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点.如: > ...
- jquery mobile listview列表属性(搜索自动填充检索效果)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- C# Word
C# 操作word文档 1.c#操作word 在指定书签插入文字或者图片 1using Word = Microsoft.Office.Interop.Word; 2 3object Nothing ...
- $_CFG = load_config(); /* 载入系统参数 */
ecshop 中$_CFG数组主要是放置一些系统参数,并且全站共享的数据,在使用的时候,ecshop里面常常以$GLOBALS['_CFG']全局变量的模式来处理. ecshop 的$GLOBALS[ ...
- JS判断鼠标从哪个方向进入DIV容器
写的不够高大上 , 不要介意哦... Js: //进去 $(".flash").bind("mouseenter",function(e){ /** the w ...
- 蟠桃记 AC 杭电
蟠桃记 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- codevs 3269 混合背包
题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至多取1件,要么至多取mi件(mi > 1) , 要么数量无限 , 在所装物品总体 ...