ThinkPHP整合Uploadify插件实现异步上传图片

1、首先到官网下载Uploadify插件。

2、在页面引入uploadify.css、jquery.uploadify.min.js。当然你得先把jquery引入。

3、配置uploadify:

 代码如下 复制代码

<script type="text/javascript">
    $(function () {
        var sid = '{:session_id()}';
        $('#file_upload').uploadify({
            formData : {'session_id' : sid},
            swf : '__PUBLIC__/uploadify/uploadify.swf',
            uploader : "{:U(MODULE_NAME . '/' . CONTROLLER_NAME . '/uploadify')}",
            buttonText : '教师图片上传',
            fileTypeExt : '*.png;*.jpeg;*.jpg;*.gif;',
            fileTypeDesc : '选择图片',
            onUploadSuccess : function(file, data, response) {
                var src = '__ROOT__/Uploads/' + data;
                $('#img').attr('src', src);
                $('#pic').val(src);
            }
        });
    });
</script>

上传处理的地址就是uploadify方法,由于JS对上传文件的限制,上传文件不能做到异步上传。所以这里我把返回图片的地址赋值给一个隐藏的表单然后在用异步提交到数据库,有更好的方法的童鞋请在下方留言。

4、处理上传图片的方法代码:

 代码如下 复制代码
//图像上传处理
public function uploadify() {
  if (!empty($_FILES)) {
    //图片上传设置
    $config = array(
      'maxSize'    =>    3145728,
      'savePath'   =>    '',
      'saveName'   =>    array('uniqid',''),
      'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),
      'autoSub'    =>    true,
      'subName'    =>    array('date','Ymd'),
    );
    $upload = new ThinkUpload($config);// 实例化上传类
    $info = $upload->upload();
    if(!$info) {
      //上传错误提示信息
      $this->error($upload->getError());
    } else {
      foreach($info as $file){
        echo $file['savepath'].$file['savename'];
      }
    }
  }
}

PS:在根目录创建Uploads目录

HTML代码

 代码如下 复制代码
<img id="img" src="__PUBLIC__/Images/nopic.png" width="480" height="249" border="0" /><br>
<span>上传图片尺寸建议为480*249</span><br>
<input type="hidden" name="pic" id="pic">
<input id="file_upload" type="file"  multiple="true" size="60" />

对于出现302 error 的同学,是因为需要传递session值给uploadify。在配置uploadify的时候加上这一项就能解决了formData : {'session_id' : sid},当然得先定义var sid = '{:session_id()}';。希望对大家有所帮助!

时间: 2024-08-25 11:38:37

ThinkPHP整合Uploadify插件实现异步上传图片的相关文章

struts2整合uploadify插件怎样传参数

关于uploadify3.1,先看下帮助文档中的有些知识. 其中有个onUploadStart方法,我们可以使用这个向后台传参. 下面举个例子, js: <script type="text/javascript"> $(function () { $('#actpic').uploadify({ 'debug': false, 'auto': false, 'multi': true, 'uploader': 'admin/uploadyear.action', 'fil

PHP实现多图上传(结合uploadify插件)思路分析_php技巧

本文实例讲述了PHP实现多图上传的方法.分享给大家供大家参考,具体如下: 1.已有图片可以删除 2.有一个新增的按钮 3.点击新增按钮,跳出frame框 4.在frame框中实现图片异步上传与及时效果 5.上传成功后,调用回调函数 6.弹出框中的图片可以进行删除 7.frame弹出框点击保存,把图片通过js展示到页面中 8.页面点击保存,把图片数据保存到数据库 <?php foreach($info['product_img'] as $product_img) { ?> <div st

使用Ajax异步上传图片的方法(html,javascript,php)

前两天项目中需要用到异步上传图片和显示上传进度的功能,于是找了很多外国的文章,翻山越岭地去遇上各种坑,这里写篇文章记录一下. HTML HTML代码没什么好说,一个form表单,还有文件类型的input.我们来看js部分. javascript //绑定了`submit`事件. $('#fileupload-form').on('submit',(function(e) { e.preventDefault(); //序列化表单 var serializeData = $(this).seria

firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误

 这篇文章主要介绍了firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误,分析了下,原来是利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,知道原因了,我们来看看如何解决吧.     解决了uploadify插件在chrom频繁崩溃的问题,又遇到了新问题,ff浏览器下报HTTP 302错误, ff浏览器下 uploadify 利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个se

使用uploadify插件,上传的文件成功了,却还报404错误

问题描述 使用uploadify插件,上传的文件成功了,却还报404错误 前端代码: <div class="upload-pic img-wrap"> <input type="hidden" name="info[pic]" id="pic" value=""> <a href="javascript:void(0);" onclick="at

BootStrap中Datetimepicker和uploadify插件应用实例小结_javascript技巧

bootstrap-datetimepicker是一款轻便的时间选择插件,支持Time选择,国际化,应用起来相当简单.而uploadify则是一款支持多文件上传的插件.最近应用这两个插件做了些小应用,感觉不错,简单做个总结. 1.引入插件注意事项 到 bootstrap-datetimepicker 官网下载,应用bootstrap-datetimepicker需要用到三个文件:bootstrap-datetimepicker.min.js,bootstrap-datetimepicker.mi

Thinkphp+smarty+uploadify实现无刷新上传_php实例

本文实例讲述了Thinkphp+smarty+uploadify实现无刷新上传的方法.分享给大家供大家参考.具体如下: 模板文件代码: <!DOCTYPE html> <html lang="cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="<

firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误_jquery

解决了uploadify插件在chrom频繁崩溃的问题,又遇到了新问题,ff浏览器下报HTTP 302错误, ff浏览器下 uploadify 利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,新的session无法通过登录验证,因此被重定向到了登录页面. 解决的方法无非就是将原session一起post到服务器端,然后服务器端登录验证之前将需要验证的session改为post过来的那个...(语言组织能力太差-,-). jquery.uploa

java webApp异步上传图片实现代码_java

如何实现java webApp异步上传图片,先了解以下几个问题: 1.图片上传: 2.图片上传预览: 3.上传图片更改地址异步添加到数据库: 主要内容 本示例主要采用纯HTML前端和JavaScript代码作工具,查询有关demo其实现图片上传的代码范例如下: (1)点击上传图片的div代码: <div id="div1" class="photo"> <input type="file" id="choose&quo