网站首页

PHPCMS后台加入批量上传

发布时间:2015-04-07 10:28:43编辑:admin阅读(

    首先在扩展下的菜单管理,在 内容->内容相关设置->管理栏目 下新建 批量上传 
     
    然后后台文件找到 phpcms\modules\admin\category.php 在里面加入如下代码:
    /**
     * 后台批量上传功能,根据文件的路径,对应放入 phpcms\modules\admin\xxx.php 的方法里面
     * 需要在 phpcms\modules\admin\templates 放入相应的模板文件
     * 字符根据需要转换
     * 组装的sql语句需要更改
     * 批量上传
     */
    public function piliang(){
    //接收提交文件
    if(isset($_POST['dosubmit'])) {
    //出错显示错误原因
    if ($_FILES["file"]["error"] > 0){
      showmessage("Error: " . $_FILES["file"]["error"] . "<br />");
    }
    //判断上传文件的格式
    if($_FILES['file']['type'] != 'application/vnd.ms-excel'){
    showmessage('请上传CSV格式文件',HTTP_REFERER);
    }
    //读取数据库配置文件
    $database = pc_base::load_config('database');
    $database = $database['default'];

    //链接数据库
    $db=mysql_connect($database['hostname'],$database['username'],$database['password']) ;
    mysql_select_db($database['database'],$db);
    mysql_query("SET NAMES 'utf8'",$db);
    //打开文件,读取文件内容
    $fp = fopen($_FILES['file']['tmp_name'], 'r');

    while(!feof($fp)){
    $data = fgetcsv($fp);
    //如果取得的不是数组,跳过
    if(!is_array($data)){
    continue;
    }
    //将字符转换成UTF-8格式
    $title = mb_convert_encoding($data[0],'UTF-8','GBK');
    $pp = mb_convert_encoding($data[1],'UTF-8','GBK');
    $fz = mb_convert_encoding($data[2],'UTF-8','GBK');
    $ph = mb_convert_encoding($data[3],'UTF-8','GBK');
    $kcsl = mb_convert_encoding($data[4],'UTF-8','GBK');
    $beizhu = mb_convert_encoding($data[5],'UTF-8','GBK');
    $time = mktime();

    //组装SQL语句
    $sql_z = "INSERT INTO jcd_kcss (catid,typeid,title,style,thumb,keywords,description,posids,url,listorder,status,sysadd,islink,username,inputtime,updatetime) VALUES (35,0,'$title','','','','$beizhu',0,'url',0,99,1,1,'admin',$time,$time)";
    mysql_query($sql_z);

    //获取上一次插入的ID号
    $lastid = mysql_insert_id();
    $sql_f = "INSERT INTO jcd_kcss_data (id,content,readpoint,groupids_view,paginationtype,maxcharperpage,template,paytype,allow_comment,relation,pp,fz,ph,kcsl) VALUES ($lastid,'',0,'',0,10000,'',0,1,'','$pp','$fz','$ph','$kcsl')";
    mysql_query($sql_f);
    }
    //关闭文件
    fclose($fp);
    //关闭数据库
    mysql_close();
    showmessage('上传成功!',HTTP_REFERER);
    }
    else{
    include $this->admin_tpl('piliang');
    }
    }
     
    然后在phpcms\modules\admin\templates 下 加入模板文件 代码如下:
     
    <?php
    defined('IN_ADMIN') or exit('No permission resources.');
    include $this->admin_tpl('header');?>
    <form name="myform" action="?m=admin&c=category&a=piliang" method="post" enctype="multipart/form-data">
    <div class="pad_10">
    <div class="explain-col">
    温馨提示:请上传<span style = "color:red;font-size:18px;">CSV</span>格式的文件!并且文件需要按照 <span style = "color:red;font-size:18px;">型号、品牌、封装、批号、库存数量、备注</span> 的格式,否则系统无法读取!
    </div>
    <div class="bk10"></div>
    <div class="table-list">
        
    <input type="file" name="file"/> 
        <div class="btn">
    <input type="hidden" name="pc_hash" value="<?php echo $_SESSION['pc_hash'];?>" />
    <input type="submit" class="button" name="dosubmit" value="提交" /></div>  </div>
    </div>
    </div>
    </form>
    <script language="JavaScript">
    <!--
    window.top.$('#display_center_id').css('display','none');
    //-->
    </script>
    </body>
    </html>