uploadify实现七牛云存储 显示上传进度+页面显示
准备:
uploadify下载地址:
http://www.uploadify.com/download/
七牛 php-sdk开发指南:
http://developer.qiniu.com/docs/v6/sdk/php-sdk.html
php-sdk地址:
https://github.com/qiniu/php-sdk
开始:
DEMO:
在七牛里面注册账号以后,成为标准用户
免费存储空间10GB
免费每月下载流量10GB
免费每月PUT/DELETE 10万次请求
免费每月GET 100万次请求
貌似是一个不错的福利。
成功注册后就会 账号页面 有ak 和sk key 可以在代码中使用。
下载好uploadify 后 把 七牛 php -sdk 文件包里面的内容放在 uploadify 里面
打开uploadify.php 文件 代码如下:
- <?php
- /*
- Uploadify
- Copyright (c) 2012 Reactive Apps, Ronnie Garcia
- Released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
- */
- // Define a destination
- $targetFolder = '/uploads'; // Relative to the root
- $verifyToken = md5('unique_salt' . $_POST['timestamp']);
- if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
- $tempFile = $_FILES['Filedata']['tmp_name'];
- $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
- $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
- // Validate the file type
- $fileTypes = array('jpg','jpeg','gif','png'); // File extensions
- $fileParts = pathinfo($_FILES['Filedata']['name']);
- if (in_array($fileParts['extension'],$fileTypes)) {
- move_uploaded_file($tempFile,$targetFile);
- echo '1';
- } else {
- echo 'Invalid file type.';
- }
- }
- ?>
修改代码如下: 介绍参考代码内部.
- <?php
- $verifyToken = md5('unique_salt' . $_POST['timestamp']);
- if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
- $tempFile = $_FILES['Filedata']['tmp_name'];
- //生成新的文件名
- $filename = time().mt_rand(10,99).'.'.end(explode('.', $_FILES['Filedata']['name'])); //在这里修改生出随机图片名
- $fileTypes = array('jpg','jpeg','gif','png'); //限制上传的文件为图片
- $fileParts = pathinfo($_FILES['Filedata']['name']);
- if (in_array($fileParts['extension'],$fileTypes)) {
- //上传图片到云端 start
- require_once("qiniu/io.php");
- require_once("qiniu/rs.php");
- $bucket = "hdimg";//空间名
- //截取原始文件后缀名
- $key1 = "Uploads/".$filename;
- $accessKey = ' '; //这里填写ak
- $secretKey = ' '; // 这里填写SK
- Qiniu_SetKeys($accessKey, $secretKey);
- $putPolicy = new Qiniu_RS_PutPolicy($bucket);
- $upToken = $putPolicy->Token(null);
- $putExtra = new Qiniu_PutExtra();
- $putExtra->Crc32 = 1;
- //$tempFile uploadify上传的临时文件路径
- list($ret, $err) = Qiniu_PutFile($upToken, $key1, $tempFile, $putExtra);
- //上传图片到云端 end
- //返回文件名给前台
- echo "http://hdimg.qiniudn.com/".$key1; //前台使用回调函数的data参数接收
- } else {
- echo 'Invalid file type.';
- }
- }
前台index.php修改为:前台调用 echo 输出的值data 进行操作。
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>UploadiFive Test</title>
- <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
- <script src="jquery.uploadify.min.js" type="text/javascript"></script>
- <link rel="stylesheet" type="text/css" href="uploadify.css">
- <style type="text/css">
- body {
- font: 13px Arial, Helvetica, Sans-serif;
- }
- </style>
- </head>
- <body>
- <form>
- <div id="queue"></div>
- <input id="file_upload" name="file_upload" type="file" multiple="true">
- </form>
- <img width="100" height="100" id="txtimg" src=""/>
- <script type="text/javascript">
- <?php $timestamp = time();?>
- $(function() {
- $('#file_upload').uploadify({
- 'formData' : {
- 'timestamp' : '<?php echo $timestamp;?>',
- 'token' : '<?php echo md5('unique_salt' . $timestamp);?>'
- },
- 'swf' : 'uploadify.swf',
- 'uploader' : 'uploadify.php',
- 'onUploadSuccess' : function(file,data,response) { //执行成功后就执行该段js
- document.getElementById('txtimg').src=data;
- }
- });
- });
- </script>
- </body>
- </html>
对data 进行输入到页面 实现 当前页面显示。控制 #txtimg 的值为 输出的data值 即为 图片地址。
后期 如果需要 iframe 调用的话 可以把
- document.getElementById('txtimg').src=data; 可以把data 传输到父页面 的 #txtimg 中。
- parent.document.getElementById('txtimg').src=data;
uploadify实现七牛云存储 显示上传进度+页面显示的更多相关文章
- [Swift通天遁地]四、网络和线程-(9)上传图片并实时显示上传进度
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 基于element ui 实现七牛云自定义key上传文件,并监听更新上传进度
借助上传Upload 上传组件的 http-request 覆盖默认的上传行为,可以自定义上传的实现 <el-upload multiple ref="sliderUpload&quo ...
- 七牛云实现js上传
七牛云的官方API写的一塌糊涂.最主要的,还是版本兼容的问题. 一.引入文件 引入了两个文件: 1.jquery-1.10.2.min.js 2.plupload.full.min.js 3.qini ...
- django + ckeditor + 七牛云,图片上传到七牛云
传送门 本人使用的是 Django 的自带的管理后台,安装 ckeditor 富文本编辑器后,上传图片的时候直接传到七牛云的.
- Web前端文件上传进度的显示
跟后台关系不大,主要是前端js实现,具体使用了XMLHttpRequest的ProgressEvent事件,可以参考MDN中的Using XMLHttpRequest https://develope ...
- Linux下七牛云存储qrsync命令行上传同步工具
原址:https://m.aliyun.com/yunqi/ziliao/54370 VPS数据备份是一个重要的工作,之前在文章:使用七牛云存储自动备份VPS数据分享过使用七牛云存储提供的工具QRSB ...
- Android开发中使用七牛云存储进行图片上传下载
Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...
- 七牛云存储的 Javascript Web 前端文件上传
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,七牛云存储的 Web 前端文件上传 七牛是不错的云存储产品,特别是有免费的配额可 ...
- Java 七牛云存储与下载
七牛云的文件上传和下载(私有空间) 1.本篇博客参考网址 https://blog.csdn.net/peaceful000/article/details/53171578 https://blog ...
随机推荐
- HDU 1847 Good Luck in CET-4 Everybody! (博弈论sg)
Good Luck in CET-4 Everybody! Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?或许紧张得连短学期的ACM都没工夫练习了.反正我知 ...
- 征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)
有日子没写博客了,真的是忙得要疯掉. 完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: 征服 Redis 征服 Redis + J ...
- Eclipse reports that Android SDK Content Loader has encountered a problem. parseSdkContent failed.
1) Download the SDK platform for API 20 (4.4W) 2) Navigate to your sdk folder (should be like D:\Ecl ...
- requestFocusFromTouch , requestFocus
/*if(userNameEditText.isInTouchMode()){ userNameEditText.requestFocusFromTouch(); }else{ userNameEdi ...
- UDF 编写自定函数
在Mysql的官方文档中有说明如何给Mysql添加新的函数. 添加的函数可分为3种: .自行编写函数的源码,将源码编译成动态库,然后使用Mysql的CREATE FUNCTION语句来将函数添加进My ...
- MVC1笔记
/// ///直接返回 字符串的 Action方法,适用于 不需要返回大量 html代码的业务(类似于一般处理程序) /// public string Index() { return " ...
- StringBuffer与StringBuilder之间的区别
public class Test { public static void main(String[] args) { StringBuffer strBuffer = new StringBuff ...
- selendroid项目实战教程1
selendroid是国内使用非常少的框架.资料也少.刚好公司项目用到,给大家分享下,技术不太行,有错误还望指正. 使用selendroid契机,是公司开发的APP,需要大量捕捉Toast信息.公司的 ...
- 用 C# 如何判断数据库中是否存在一个值
选定一个列,比如用户编号列 //欲插入的用户编号string ll_userID="xxxxxxxx"; //查询此编号是否存在SqlCommand mycmd = new Sql ...
- 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection
代码如下: final Connection conn=pool.remove(0); //利用动态代理改造close方法 Connection proxy= (Connection) Proxy.n ...