发新话题
打印

关于批量上传的修改,出问题了!!!

关于批量上传的修改,出问题了!!!

1、将lib_excel.php拷贝入
[商店根目录]/admin/includes   目录下

2、在[商店根目录]/admin/goods_batch.php
行号 20 require('includes/init.php');
加入
require('includes/lib_excel.php');

以下是原代码
行号 79-166
--------------------------------------
    /* 将文件按行读入数组,逐行进行解析 */
    $line_number = 0;
    $goods_list = array();
    $field_list = array_keys($_LANG['upload_goods']); // 字段列表
    $data = file($_FILES['file']['tmp_name']);
    foreach ($data AS $line)
    {
        // 跳过第一行
        if ($line_number == 0)
        {
            $line_number++;
            continue;
        }
        // 转换编码
        if ($_POST['charset'] != 'UTF8')
        {
            $line = $iconv->convert($_POST['charset'], 'UTF8', $line);
        }

        // 初始化
        $arr    = array();
        $buff   = '';
        $quote  = 0;
        $len    = strlen($line);
        for ($i = 0; $i < $len; $i++)
        {
            $char = $line[$i];
            if ('\\' == $char)
            {
                $i++;
                $char = $line[$i];
                switch ($char)
                {
                    case '"':
                        $buff .= '"';
                        break;
                    case '\'':
                        $buff .= '\'';
                        break;
                    case ',';
                        $buff .= ',';
                        break;
                    default:
                        $buff .= '\\' . $char;
                        break;
                }
            }
            elseif ('"' == $char)
            {
                if (0 == $quote)
                {
                    $quote++;
                }
                else
                {
                    $quote = 0;
                }
            }
            elseif (',' == $char)
            {
                if (0 == $quote)
                {
                    $field_name = $field_list[count($arr)];
                    $arr[$field_name] = trim($buff);
                    $buff = '';
                    $quote = 0;
                }
                else
                {
                    $buff .= $char;
                }
            }
            else
            {
                $buff .= $char;
            }
            if ($i == $len - 1)
            {
                $field_name = $field_list[count($arr)];
                $arr[$field_name] = trim($buff);
            }
        }
        $goods_list[] = $arr;
    }
------------------------------------
修改为:
    /* 将Excel文件数据导入数据库 */
  $line_number = 0;
  $goods_list = array();
  $field_list = array_keys($_LANG['upload_goods']); // 字段表
  Read_Excel_File($_FILES['file']['tmp_name'],$data); // 将文件数据读入数组
  foreach ($data[goods_list] AS $line) // $data[goods_list]  goods_list 为Excel工作表名
  {
      // 跳过第一行
    if ($line_number == 0)
        {
            $line_number++;
            continue;
        }
   
    // 转换编码
    if ($_POST['charset'] != 'UTF8')
        {
       foreach ($line AS $value)
      {
        $value = $iconv->convert($_POST['charset'], 'UTF8', $value);
      }
        }
   
    // 初始化
    $arr = array();
    foreach ($line AS $field)
    {
      $field_name = $field_list[count($arr)];
     $arr[$field_name] = trim($field);
    }
    $goods_list[] = $arr;
  }

我是按照这个方式去做的,在后台为什么出现附件这问题????请达人解决,急!!!

附件

ECSHOP.jpg (154.87 KB)

2007-7-10 10:48

ECSHOP.jpg

www.dmishome.com多米时尚家具--顺德家具直销网
http://shop33304680.taobao.com

TOP

这个系统的商品批量上传实在是很麻烦!!!
单个上传,又非常慢.....郁闷...............
要是有个可以将手动上传的产品导出,还可以对比一下!!!
如有个像淘宝助理,拍拍助理那样的工具就好了!!!
www.dmishome.com多米时尚家具--顺德家具直销网
http://shop33304680.taobao.com

TOP

我是在原版上修改的

[ 本帖最后由 xushuyi 于 2007-7-10 17:10 编辑 ]

附件

test.xls.rar (2.62 KB)

2007-7-10 17:10, 下载次数: 9

test.xls

batch_modify.rar (14.66 KB)

2007-7-10 17:03, 下载次数: 8

修改的文件

TOP

好了??

TOP

发新话题