php导入excel 这段代码怎么修改为指定网站路径下的excel文件而非上传

新手上路,请多包涵

php代码

if($ta == 'export') {
    $_W['page']['title'] = '批量导入';
    if($_W['ispost']) {
        $file = upload_file($_FILES['file'], 'excel');
        if(is_error($file)) {
            imessage(error(-1, $file['message']), '', 'ajax');
        }
        $data = read_excel($file);
        if(is_error($data)) {
            imessage(error(-1, $data['message']), '', 'ajax');
        }
        unset($data[0]);
        if(empty($data)) {
            imessage(error(-1, '没有要导入的数据'), '', 'ajax');
        }
        foreach($data as $da) {
            $insert = array(
                'uniacid' => $_W['uniacid'],
                'sid' => $sid,
                'title' => trim($da[0]),
                'displayorder' => intval($da[1]),
                'status' =>  intval($da[2]),
            );
            pdo_insert('tiny_wmall_goods_category', $insert);
        }
        imessage(error(0, '导入商品分类成功'), iurl('store/goods/category/list'), 'ajax');
    }
}

问题:

以上代码为选择电脑上的excel文件导入;请大神指点下,我想改成导入网站服务器上指定路径下excel文件如:/wwwroot/goods_category.xls,请问怎么修改。

阅读 3.1k
1 个回答

有两个地方要修改.

前端页面
把上传控件修改成文本框. 类似这样

<input type="file" name="file" />
<!-- 以上修改成以下 -->
<span>XLS 文件名(不带扩展名)</span>
<input type="text" name="xlsfilename" />

这样你可以在网页上输入待导入的文件名, 而不是上传本地文件了.

后台代码(你贴出来的 php 代码)
把这部分

        $file = upload_file($_FILES['file'], 'excel');
        if(is_error($file)) {
            imessage(error(-1, $file['message']), '', 'ajax');
        }

修改成类似这样的

        $base_name = $_POST["xlsfilename"];
        // 必须检查文件名, 防止恶意输入
        // 合理的文件名只含 a-z, A-Z, 0-9, 及 "-" 和 "_", 最多 30 个字符.
        if (!preg_match("/^[a-zA-Z0-9_-]{1,30}$/g", $base_name)) {
            die("invalid file name");
            return;
        }
        // 到 "/wwwroot/" 目录下找指定的 xls 文件
        $file = fopen("/wwwroot/" . base_name . ".xls","r");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题