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_object基础
之前写Java时老是有点蒙,大部分都是用jQuery,但原理还不是很清楚,最近一段时间在系统的学习JavaScript,有什么问题或错误请指出,多谢..................... Obje ...
- When Colon Scripting is comming(JavaScript语法扩充)
当冒号脚本来临-- JavaScript语法扩充 连续好几夜的不能安眠,得出结论就是,未来语言未来的编译器应该是支持语法定制规则和语法扩展的,这样使得编程语言不断进化以更利于人类使用!of cours ...
- ls命令解析
ls 列出目录的内容.它可是我们所经常使用的命令,那么你了解它所有的功能吗?下面让我们来看看吧! 命令格式 ls [OPTION]... [FILE]... 参数说明 -a , --all 显示所有文 ...
- mysql报Fatal error encountered during command execution的解决办法
连接字符串里加上 Allow User Variables=True 解决. 否则时不时的报错,存储过程名长一点也报错,又有时报有时不报,参数传1位数就正常2位数就报错等…… 折腾mysql蛋疼啊
- 关于InstallShield Projects[转]
关于 InstallShield Projects: InstallShield 可以创建三种类型的项目(Project) 1.InstallScript Pr ...
- 给AVS添加描述(how to add a description to a video)
UPDATE you might need edit few files. 1. add the input field to the tpl file: /templates/frontend/yo ...
- android 休眠唤醒机制分析(一) — wake_lock
本文转自:http://blog.csdn.net/g_salamander/article/details/7978772 Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一 ...
- 运行Capture.exe找不到cdn_sfl401as.dll
今天运行capture Orcad16.6显示缺少cdn_sfl401as.dll,昨天运行时并没有发现这种情况,回想今天安装了modelsim之后才发生这种情况,于是将modelsim卸载掉,再次启 ...
- java中dynamic web project与web project 的区别 [转]
原帖地址:http://blog.sina.com.cn/s/blog_46726d2401013jlk.html 文章框架: 1.Dynamic Web Project 概念 2.eclipse ...
- 使用putty登陆cygwin出现server unexpectedly ...error.解决方案
将cygwin安装目录下/etc/passwd中的passwd文件中user:unused:32707:10513:U-CYOU-INC\user,S-1-5-21-2645613570-259884 ...