关于批量上传的修改,出问题了!!!
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