我刚刚将我的CI应用程序移到了真实的服务器上,用户在那里找到了三个可选的文件上传,两个用于常规文档和图像,第三个仅用于csv文件,奇怪的是前两个上传可以正常工作而没有警告,文件上传没有问题,但是第3个文件csv文件不断向我发送警告,并避免了要上传的任何文件,也没有创建应该上传的目录,第一个文件的代码这是:

if (isset($_POST['save'])){
    $this->load->library('upload');

    $field = "file1";
    $nombreCarpeta = preg_replace('/\s+/', '.', $this->session->userdata("username"));
    $path = $this->config->item('server_root')."/codeigniter/uploads/".$nombreCarpeta."/";
    if(!file_exists($path)){
         mkdir($path, 0766);
    }

    $config["upload_path"] = $path;
    $config["overwrite"] = "TRUE";
    $config["remove_spaces"] = "TRUE";
    $config["allowed_types"] = "txt|pdf|gif|jpg|png|tiff|doc|docx|rtf|jpeg";
    $config["max_size"] = "1024*2048";
    $config["max_width"] = "1024";
    $config["max_height"] = "768";
    $config["xss_clean"] = "FALSE";

    $this->upload->initialize($config);
    $this->upload->do_upload($field);
    if($_FILES["file1"]['error'] == 0){
         if ($this->upload->do_upload($field)){
              $data = $this->upload->data();
              array_push($arreglo, $data['file_name']);
          }else{
               $errors = $this->upload->display_errors();
          }
    }
    .... same code, this time for file2

    $field = "file3";

    $pathDos = $this->config->item('server_root')."/codeigniter/listas/".$nombreCarpeta."/";
    if(!file_exists($pathDos)){
        mkdir($pathDos, 0777);
    }

    $config["upload_path"] = $pathDos;
    $config["overwrite"] = "TRUE";
    $config["remove_spaces"] = "TRUE";
    $config["allowed_types"] = "csv";
    $config["max_size"] = "1024*512";
    $config["xss_clean"] = "FALSE";

    $this->upload->initialize($config);
    $this->upload->do_upload($field);
    if($_FILES["file3"]['error'] == 0){
         if ($this->upload->do_upload($field)){
             $data = $this->upload->data();
             array_push($arregloDos, $data['file_name']);
         }else{
             $errors = $this->upload->display_errors();
         }
    } 
}

如您所见,该过程是相同的,除了一些上载配置外,文件需要在两个先前创建的具有777权限的文件夹中进行上传,分别是上载和列表,在其中,将动态创建单个文件夹并将其命名为用户名,如我所说,为了区分用户文件,docs和images目录没有问题(上传),ls -l看起来像这样:

drwxrwxrwx.  2 root root  4096 Jan 14 05:59 listas
drwxrwxrwx.  3 root root  4096 Jan 13 11:18 uploads

ls -l内部上传看起来像这样:

drwxr-xr-x. 2 apache apache 4096 Jan 13 13:29 administrator

用户管理员上传了几张图片,因此,在上传文件之前在上传文件中成功创建了一个名为“ administrator”的文件夹,但尝试上传csv文件时未成功,即使文件夹listas具有777权限,listas内部也没有文件夹创建并没有上载任何文件,因为出现“ mkdir():权限被拒绝”警告!,您可以看到目录具有适当的权限,因此我进行了一次测试,在listas内创建了文件夹管理员,并为其赋予了777权限和chown-ing / chgrp-apache,没有结果...知道吗? 正在使用CentOS ... thanx ia

#1楼 票数:0

可能是由于csv上传问题而发生的,这是一个codeigniter错误。

固定

打开application/config/mimes.php并更新line 13 (probably)

'csv' => array('application/vnd.ms-excel', 'text/anytext', 'text/plain', 'text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),

  ask by Sergio Varela translate from so

未解决问题?本站智能推荐:

5回复

xls文件未在codeigniter中上传?

我想上传csv文件和xls文件,我的代码如下 ` 我的csv文件上传得很好,但是当我选择xls文件时,codeigniter显示错误“不允许您尝试上传的文件类型”。 print_r($ _ FILES)的结果是
2回复

在cpanel中上传csv文件时的codeigniter问题

我收到了以下错误:不允许您尝试上传的文件类型。 我想上传csv文件。 我正在使用codeigniter文件上传方法do_upload,我还提供allowed_types作为csv
1回复

Codeigniter的文件上传“ allowed_types”选项无法正常工作

由于某些原因,如果我输入'allowed_types' => '*', ,它会接受它,并且效果很好。 但是,如果我只想要csv文件: 'allowed_types' => 'csv',并且当我上传csv文件时,它会输出错误: The filetype you are attemp
5回复

CodeIgniter-消息:mkdir():在Ubuntu上拒绝权限

请给我一些帮助。 我的Post_model构造函数中有这个PHP脚本 向我显示此错误: 主要思想是该项目具有创建用户的能力,这些用户可以上传图像,或创建存储在上载文件夹中的文件夹相册。 最近几天,我一直在努力解决此错误,并且找不到解决方案。 我已经在Windows上尝试
2回复

MKDIR() 权限被拒绝 Codeigniter 3

我需要来自 codeigniter 3 的日志。但我收到此错误消息, 遇到 PHP 错误 严重性:警告 消息:mkdir():权限被拒绝 文件名:core/Log.php 行号:122 回溯: 文件:/home/admin/mysite/index.php 行:292 功能:
5回复

Codeigniter无法从url中删除索引

我正在使用CentOS, 但同样的问题我的index.php页面工作正常,但当我删除index.php它不工作...
4回复

mkdir() 权限被拒绝

我正在尝试使用 PHP mkdir 函数创建一个目录,但出现如下错误:警告:mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/tiki-id/system/core/Log.php on line 122 这是第
2回复

PHP文件上传在centos服务器中不起作用

这些是我用于文件上传的代码。 在Xammp窗口中一切正常。 但是它不能在centos服务器下工作。 它将引发错误“无效文件”。 upload.php 的HTML 上传的文件为Json文件,文件大小为1.02kb。 有人请帮我解决这个问题。