TP3.2整合uplodify文件上传
HTML中:
<style>
#img_upload-queue{width:120px;float:left;} /*uploadify的上传进度条样式,前面的img_upload是根据上传按钮的ID来的*/
</style>
//需要引入这3个JS文件
<script type="text/javascript" src="__PUBLIC__/js/jquery.js"></script>
<link rel="stylesheet" href="__PUBLIC__/uploadify/uploadify.css">
<script src="__PUBLIC__/uploadify/jquery.uploadify.min.js"></script>
<script>
$(function() {
$('#img_upload').uploadify({  //通过ID来调用uplodify
'swf'      : '__PUBLIC__/uploadify/uploadify.swf',  //必须载入uplodify.swf文件
'uploader' : "<{:U('Product/uploadify')}>",  //上传提交控制器地址
'buttonText' : '缩略图上传',  //上传按钮显示的文字
'onUploadSuccess' : function(file, data, response) {  //上传回调
$('#img').attr('src','__ROOT__/Upload/thumb/'+ data);  //将返回的地址拼接成图片路径,显示缩略图
$('#thumb').val(data);  //将返回的地址加载到input中
},
//这里的formData主要是解决FF无法通过flash传session的问题,uplodify是通过flash上传的
'formData'     : { //通过formData往后台传递参数,POST方式;uploadify在FF里上传的时候会丢失session,由于控制器中通过session判 断了登录,所以导致上传失败,返回302错误,因此需要重新传递session内容过去,并在控制器重新组合session
'sid' : '<{:session_id()}>', //传递SESSIONID
'sname' : '<{:session("username")}>', //传递username
'sid' : '<{:session("uid")}>' //传递uid
}
});
});
</script>
//HTML中插入uplodify上传控件
<td>
<div><input id="thumb" type="text" style="float:left;margin:35px 20px 0 0;" /></div>
<div style="float:left;margin:30px 20px 0 0;"><input id="img_upload" name="img_upload" type="file" multiple="true" value="" style="float:left" /></div>
<div><img id="img" src="" style="width:100px;height:100px;background:#666;" /></div>
</td>
PHP中
//公共控制器,用来验证是否登录等
class CommonController extends Controller{
public function _initialize(){
//此处为解决Uploadify,kindeditor等flash上传在火狐下上传失败,重新设置SESSION
if ($_POST['sid']) {  //接收自定义传入的内容,然后手动写入session
session_id($_POST['sid']);
session_start();
session('username',$_POST['sname']);  //手动写入session的username,否则下面的判断通不过,则由于没登录导致上传失败
session('id',$_POST['suid']);
}
if(!$_SESSION['username']){
$this->redirect('Login/index');
}
}
}
//uplodify文件上传
public function uploadify(){
$config = array(
'maxSize'           =>  1000000, //上传文件的最大值
'exts'         =>  array('jpeg','jpg','png','gif'), //允许上传的文件后缀 留空不作后缀检查
'autoSub'           =>  true, // 启用子目录保存文件
'subName'           =>  array('date','Ymd'), // 子目录创建方式 可以使用hash date custom
'rootPath'          =>  './Upload/thumb/', //保存根路径
'savePath'          =>  '', //上传文件保存路径
);
$upload = new \Think\Upload($config);
$info=$upload->upload();
if($info){
echo $info['Filedata']['savepath'].$info['Filedata']['savename'];  //拼接出地址直接echo返回
}else{ //如果上传失败,则输出错误信息
echo $upload->getError();
}
}
TP3.2整合uplodify文件上传的更多相关文章
- 分布式文件系统FastDFS简介、搭建、与SpringBoot整合实现图片上传
		
之前大学时搭建过一个FastDFS的图片服务器,当时只是抱着好奇的态度搭着玩一下,当时搭建采用了一台虚拟机,tracker和storage服务在一台机器上放着,最近翻之前的博客突然想着在两台机器上搭建 ...
 - FasfDFS整合Java实现文件上传下载
		
文章目录 一 : 添加配置文件 二 : 加载配置文件 1. 测试加载配置文件 2. 输出配置文件 三:功能实现 1.初始化连接信 ...
 - SpringBoot整合阿里云OSS文件上传、下载、查看、删除
		
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
 - 整合MVC实现文件上传
		
1.整合MVC实现文件上传整合MVC实现文件上传在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,文件上传完毕之后需要将提交的基本信息插入数据库,那么我们来实现这个操作.整个MVC实 ...
 - 【Spring】Spring MVC文件上传--整合bootstrap-fileinput和jQuery-File-Upload
		
前言 这里分享两个使用Spring MVC进行文件上传的简单示例, 分别整合bootstrap-fileinput 和 Jquery File Upload , 代码十分简单, 都是入门的示例,因此这 ...
 - SpringMVC整合fastdfs-client-java实现web文件上传下载
		
原文:http://blog.csdn.net/wlwlwlwl015/article/details/52682153 本篇blog主要记录一下SpringMVC整合FastDFS的Java客户端实 ...
 - springboot整合web开发(整合servlet、filter、listener、访问静态、文件上传)
		
整合servlet 1.继承HttpServlet 2.添加@WebServlet注解 @WebServlet(name="FirstServlet",urlPatterns=&q ...
 - springboot整合OSS实现文件上传
		
OSS 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.OSS可用于图片.音视频.日志等海量文件的存储.各种终端 ...
 - FasfDFS整合Java实现文件上传下载功能实例详解
		
https://www.jb51.net/article/120675.htm 在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java ...
 
随机推荐
- C#两种数据类型
			
C#的两种类据类型:值类型和引用类型 什么是值类型,什么是引用类型 概念:值类型直接存储其值,而引用类型存储对其值的引用.部署:托管堆上部署了所有引用类型. 引用类型:基类为Objcet 值类型: ...
 - Go开发环境安装配置
			
访问下载地址:https://golang.org/dl/ 32位系统下载go1.8.1.linux-386.tar.gz,64位系统下载go1.8.1.linux-amd64.tar.gz, 假定你 ...
 - WPF操作RichTextBox
			
http://www.cnblogs.com/wzwyc/p/6291895.html
 - Assert.IsNotNull 方法(判断对象不为NULL)
			
Assert.IsNotNull 方法 Visual Studio 2012 其他版本 Visual Studio 2010 Visual Studio 2008 Visual Studio 20 ...
 - Intent在Activity之间传值的几种方式
			
发这篇博客主要讲一下Android中Intent中如何传值的几种方法: 1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本2:八种数据类新对应数组和CharSequece文本 ...
 - PowerDesigner16工具学习笔记-工具介绍
			
1.初始界面 1.1 .浏览窗口:本地(Local)浏览窗口.知识库(Repository)浏览窗口 Local:用于显示本地模型 Repository:用于显示知识库模型 1.2 .输出窗口:用于显 ...
 - IP分类
			
IP: IP分为公有ip和私有ip. 私有ip分为以下5类: 类别 ip范围 子网掩码 A 1.0.0.0------127.255.255.255 255.0.0.0 B 128.0.0.0---1 ...
 - MySQL更改了my.ini的#Path to the database root后,数据还写到原来的文件夹
			
重新启动数据库 http://www.cnblogs.com/argenbarbie/p/4090494.html
 - Hibernate---运行原理
			
Hibernate---运行原理
 - BZOJ1342 [Baltic2007]Sound静音问题
			
越来越水了... 这道题是简单的单调队列,同时维护最大值和最小值即可. 另解:multiset大法求区间最大最小,但是复杂度会上升... /****************************** ...