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#快速生成数据数组
需求:生成一个数组,数组里面的值为1-100实现方式:拿到这个需求很多朋友可能会想到一个快速实现的方式如下: ]; ;i<=;i++){ arr[i]=i; } 但是C#提供了一个快速生成的方式 ...
- TortoiseXX 与TotalCommander (TC)的图标问题
TortoiseXX通过overlay图标标志文件或文件夹是否被修改等状态,非常有用. 可惜TotoalCommander上,这些图标都没有显示. 其实,只需要在TC的菜单 配置->显示-> ...
- LncRNA
简介:长链非编码RNA(Long non-coding RNA, lncRNA)通过多种机制发挥其生物学功能, 这些机制包括基因印记.染色质重塑.细胞周期调控.剪接调控.mRNA降解和翻译调控等.ln ...
- android--------Retrofit+RxJava的使用
Retrofit是Square公司开发的一款针对Android网络请求的一个当前很流行的网络请求库. http://square.github.io/retrofit/ https://github. ...
- Jzzhu and Apples CodeForces - 449C (构造,数学)
大意: 求从[1,n]范围选择尽量多的数对, 使得每对数的gcd>1 考虑所有除2以外且不超过n/2的素数p, 若p倍数可以选择的有偶数个, 直接全部划分即可 有奇数个的话, 余下一个2*p不划 ...
- 在centos7上安装gcc、node.js(源码下载)
一.在centos7中安装node.js https://www.cnblogs.com/lpbottle/p/7733397.html 1.从源码下载Nodejs cd /usr/local/src ...
- 最小生成树(模板 prim)
Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表, 表中列出了任意两城镇间修建道路 ...
- 使用UTL_SMTP发送中文邮件及使用UTL_TCP从附件服务器获取中文附件
先上最重要的干货 发送邮件正文及主题的时候一定要使用convert重新编码 主题: utl_smtp.write_raw_data(l_mail_conn, utl_raw.cast_to_raw(c ...
- app.jsNodejs启动测试服务
'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...
- sql Server中临时表与数据表的区别
sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...