tp完美整合多图片上传

浏览:19588 发布日期:2013/07/28 分类:用法示例 关键字: 多文件上传 文件上传
tp完美整合多图片上传,网上找了很多控件均不能达到自己的要求,最后自己参考官方的例子结合自己对tp的不多认识,整合出来了适合自己用的,最近忙着项目,改天整理好了,单独分离出来上传分享,尽请期待哦; (暂时先把没改过的实例包发上来吧!有需要的朋友可以拿去参考)
更多技术文章请移步
http://www.dahuzhi.com


以下是部分代码:<{include file="comm/header.html"}>

<!--多文件上传-->
<link href="/Public/duo_uploads/css/default.css" rel="stylesheet" type="text/css" />
<link href="/Public/duo_uploads/css/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/Public/duo_uploads/scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/Public/duo_uploads/scripts/swfobject.js"></script>
<script type="text/javascript" src="/Public/duo_uploads/scripts/jquery.uploadify.v2.1.0.min.js"></script>

<script type="text/javascript">
$(document).ready(function() {
    $("#uploadify").uploadify({
        'uploader'       : '/Public/duo_uploads/scripts/uploadify.swf',  //上传按钮
        'script'         : '/index.php/article/upload',                //ajax请求文件
        'cancelImg'      : '/Public/images/cancel.png',                    //关闭按钮图片地址
        'folder'         : "../uploads/<{$time}>/",                            //时间
        'queueID'        : 'fileQueue',
        'fileExt'        : '*.jpg;*.gif;*.bmp;',                              //允许文件上传类型,和fileDesc一起使用.
        'fileDesc'       : '*.jpg;*.gif;*.bmp;',                              //将不允许文件类型,不在浏览对话框的出现.
        'auto'           : false,
        'multi'          : true,                                            //是否支持多文件上传
        'onComplete':function(event,queueId,fileObj,response,data){
            $('#info').html($('#info').html() + '<div class="img_box" ><img name="'+ response +'" src="/Public/Uploads/'+response+'" width="50" height="50"> <p onclick=del_img(this); >删除</p><input type="hidden" name="imgs[]" value="'+ response +'"></div>');//在页面上显示文件相对路径
            
        }
    });
});

//删除文件
function  del_img(whichSong)
{
    //盒子对象
    var info = document.getElementById('info');
    //当前图片对象
    var zi = whichSong.parentElement;
    //图片名称
    var path = zi.firstChild.name
    //产生对象
    var ajax=new XMLHttpRequest;
    //生成事件处理器
    ajax.onreadystatechange=function(){
        if (ajax.readyState==4) {             //判断请求状态为4完成的时候
            if (ajax.status==200) {         //判断服务器的http状态码等于200
                //alert(ajax.responseText); //弹出服务器的响应
                if(ajax.responseText)
                {
                    //删除当前
                    info.removeChild(zi);
                }
            }
        }
    }
    //打开链接
    ajax.open('post','/index.php/article/img');
    //设置http传输
    ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    //发送
    ajax.send('action=del_img&path=' + path);
}

</script>

<!--判断要修改的图片文章是否有上传多图片-->
<{if $info }>
<script type="text/javascript">
    $(document).ready(function() {
        
        //所有的图片
        var imgs = $('#imgs').val();
        var str = '';
        //分割图片
        arr = imgs.split(',');
        
        //组合每个图片html
        for(var i = 0; i < arr.length; i++)
        {
            if(arr[i])
            {
                str += '<div class="img_box" ><img name="'+ arr[i] +'" src="/Public/Uploads/'+arr[i]+'" width="50" height="50"> <p onclick=del_img(this); >删除</p><input type="hidden" name="imgs[]" value="'+ arr[i] +'"></div>';
            }
        }
        
        //所有图片html添加到已上传的图片盒子里
        $('#info').html(str);
    });
</script>
<{/if}>

<div class="main_right">
            <!-- main_right_title -->
    <div class="main_right_title">
        <em class="em eml"></em>
        <em class="em emr"></em>
        <div class="main_right_title_con">
            <a class="righttitlea" href="/index.php/class/add/p_id/0">内容列表</a>
            <a class="righttitlea1" href="#">内容管理/</a>
            <a class="righttitlea2" href="#">图片发布</a>
        </div>
    </div>
    <!-- main_right_title end -->
    <div class="linetab">
        <div class="linetab_title">
            <a class="hover" href="javascript:void(0)" style="float:left"><{if $info }>图片编辑<{else}>图片发布<{/if}></a>
        </div>
        <div class="linetab_con">
            <em class="emlf"></em>
            <em class="emrf"></em>
            <div class="linetab_con_neir">
                <form  action="" method="post" name="example" enctype="multipart/form-data">
                <input type="hidden" name="action" value="<{if $info }>edit<{else}>add<{/if}>"/>
                <{if $info }>
                    <input type="hidden" name="bak_img" value="<{$info['simg']}>"/>
                    <input type="hidden" name="id" value="<{$info['id']}>"/>
                    <input type="hidden" id="imgs" value="<{$info['img']}>"/>
                <{/if}>
                <!--case 1: $type = '文章'; break;
                case 2: $type = '产品'; break;
                case 3: $type = '图片'; break;
                case 4: $type = '下载'; break;-->
                <input type="hidden" name="type" value="3"/>
                <div class="linetab_con_line" style="display:block">
                    <table class="brand_table" cellspacing="0" cellpadding="0">
    
                        
                        <tr>
                            <th>相片:</th>
                            
                            <td>
                                <div id="container">
                                    <div id="fileQueue"></div>
                                    <div class="btn-group">
                                        <input type="file" name="uploadify" id="uploadify" />
                                        <a href="javascript:jQuery('#uploadify').uploadifyUpload()" class="btn">上传</a>
                                        <a href="javascript:jQuery('#uploadify').uploadifyClearQueue()"class="btn">取消上传</a>
                                        <p id="text_anniu">提示:只能上传<br />(jpg,gif,bmp)<br />格式图片</p>
                                    </div>

                                    <div id="info" ></div>
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <th class="list"> </th>
                            <td class="list">
                                <input type="submit" value="确定" class="btn"/>
                            </td>
                        </tr>
                    </table>
                </div>
                </form>
            </div>
        </div>
    </div>
</div>
<div class="clear"></div>

<{include file="comm/footer.html"}>
//多文件上传
    function upload() 
    {
        import("ORG.Net.Image3");
        if (!empty($_FILES)) 
        {
            //获取文件名
            $tempFile         = $_FILES['Filedata']['tmp_name'];
            //保存路径
            $targetPath     = APP_PATH . 'Public/Uploads/';
            //新图片名
            $new_file_name     = new_name( $_FILES['Filedata']['name']);
            //图片网站路径
            $targetFile     = $targetPath . $new_file_name;
            
            //判断是否文件夹存在
            if(!is_dir($targetPath))
                mkdir($targetPath, 0777, true);
        
            //防止中文文件名乱码
            move_uploaded_file($tempFile,iconv('utf-8','gbk', $targetFile));
            
            //水印
            $water = 'water.gif';
            $img   = new Image3();
            $img->param($targetFile)->water($targetFile,$water,9);
            //ajax返回图片名称
            echo get_relative_path($new_file_name);
        }
    }
    
    //图片模块
    public function img()
    {
        $c = D('class');
        $a = D('article');
        if($_POST['action'] == 'add')
        {
            //判断是否有上传多文件
            if($_POST['imgs'])
            {
                $_POST['img'] = '';
                foreach ($_POST['imgs'] as $v)
                {
                    $_POST['img'] .= $v . ',';
                }
            }
    
            //加载上传类
            $file = static::get_file(2097152);
            //判断是否上传文件
            $_POST['simg']    = ($file) ? $file : '' ;
            $_POST['addtime'] = exec_time();
            //dump($_POST);die();
            //过滤数据并添加
            $a->create();
            if($a->add())
                static::success('添加成功', 3000, 1, 0);
        }

        //获取所有分类信息
        $data = $c->order('nos asc')->select();
        //格式化无线分类
        $data = static::get_class($data);
        $this->assign('data', $data);
        //时间输出
        $this->assign('time', date('Y-m-d', time()));
        $this->display();
    }

附件 uploadify_v1.0.rar ( 62.44 KB 下载:1392 次 )

评论( 相关
后面还有条评论,点击查看>>