Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter do_upload()在“上自动失败”;“成功”;_Php_Image_Forms_Codeigniter_Upload - Fatal编程技术网

Php Codeigniter do_upload()在“上自动失败”;“成功”;

Php Codeigniter do_upload()在“上自动失败”;“成功”;,php,image,forms,codeigniter,upload,Php,Image,Forms,Codeigniter,Upload,我正在使用CodeIgniter编写一个图像上传表单。我以前有类似的代码在不同的站点上工作。目前-用于接收多部分/表单数据映像的代码正在无声地失败。在配置服务器/脚本时,我收到了错误,例如不正确的文件路径、禁用mime类型,但现在我什么也得不到 下面的代码返回“ABC”,在“D”之前失败,没有错误 如果我将“photo\u filedata”更改为“photo\u filedata2”,则会出现一个更有用的错误:“xiao xiao您没有选择要上载的文件。” 我完全无法调试它,因为我没有从服务器

我正在使用CodeIgniter编写一个图像上传表单。我以前有类似的代码在不同的站点上工作。目前-用于接收多部分/表单数据映像的代码正在无声地失败。在配置服务器/脚本时,我收到了错误,例如不正确的文件路径、禁用mime类型,但现在我什么也得不到

下面的代码返回“ABC”,在“D”之前失败,没有错误

如果我将“photo\u filedata”更改为“photo\u filedata2”,则会出现一个更有用的错误:“xiao xiao您没有选择要上载的文件。”

我完全无法调试它,因为我没有从服务器上得到任何错误

有人知道会发生什么吗

服务器:WAMP,在Windows 7上运行。拥有一个可以毫无问题地上传文件的现有项目

function upload_photo()
{
    echo "A";

    $config['upload_path'] = './images/uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['file_name'] = 'photo_' . substr(md5(time()), 0, 16);
    $config['max_size']    = 2000;
    $config['max_width']  = 0;
    $config['max_height']  = 0;

    echo "B";

    $this->load->library('upload', $config);

    echo "C";

    $result = $this->upload->do_upload('photo_filedata');

    echo "D";

    if (!$result)
    {
        $error = $this->upload->display_errors();
        $data = false;
    }   
    else
    {
        $error = false;
        $data = $this->upload->data();
    }

    $this->load->view('home-photo-upload', array('error' => $error, 'data' => $data));
}

您将maxwidth和maxheight设置为零可能就是问题所在。请检查它。

(从评论中转载):
system/application/config/mimes.php中有一个输入错误/错误,导致is_allowed_filetype()方法在do_upload()中失败

//缺失)以供最终录入约翰·比奇(又名马卡文)

CodeIgniter配置文件中的任何错误似乎都会无声地失败,因此不会报告任何进一步的错误。通过调试内部CI方法发现问题,以查明哪一行失败

$config['upload_path'] = 'uploads/category/'.$id.'/';
        //echo $file_name;die;
        //echo $config['upload_path'];
        $config['allowed_types'] = 'gif|jpg|jpeg|png';
        $config['max_size'] = '750';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload');
         foreach ($_FILES as $key => $value) {
            //print_r($key);

            if (!empty($key['name'])) {

                $this->upload->initialize($config);
                if (!$this->upload->do_upload($key)) {
                  // echo 'test';die;
//                    rmdir('uploads/category/'.$id);
                    $errors = $this->upload->display_errors();
                    flashMsg($errors);
                }
}
}

试试这个

不,这在原始代码中运行良好://来自其他项目的工作代码:$config['upload_path']='./images/uploads/$配置['allowed_types']='gif | jpg | png'$配置['max_size']=1024*3$配置['max_width']=0$配置['max_height']=0@John Beech-能否添加
ini\u集(“显示错误”,true)
错误报告(E_ALL)正下方
回显“C”如果有什么发现,请告诉我们?”弗朗索瓦-当然,现在将测试它。我在另一个项目中使用了上述代码,但当我复制回来时,我遇到了相同的问题-因此看起来可能是项目范围内的配置问题。@Francois-仍然没有,从未到达“D”:“echo”C;ini设置(“显示错误”,真);错误报告(E_全部);$result=$this->upload->do_upload('photo_filedata');`回声“D”`@约翰·比奇-你确定文件夹是可写的吗?我在Linux和OSX上使用CodeIgniter,您的代码似乎可以工作。我想到的另一件事是路径应该使用\而不是/。system/application/config/mimes.php中有一个输入错误/错误,导致is_allowed_filetype()方法在do_upload()中失败;错误:'gif'=>数组('image/gif','application/octet stream'),'jpeg'=>数组('image/jpeg','image/pjpeg','application/octet stream'),'jpg'=>数组('image/jpeg','image/pjpeg','application/octet stream'),'jpe'=>数组('image/jpeg','image/pjpeg','application/octet stream'),'png'=>数组('image/png','image/x-png','application/octet stream');//缺少)用于最终输入。
$config['upload_path'] = 'uploads/category/'.$id.'/';
        //echo $file_name;die;
        //echo $config['upload_path'];
        $config['allowed_types'] = 'gif|jpg|jpeg|png';
        $config['max_size'] = '750';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload');
         foreach ($_FILES as $key => $value) {
            //print_r($key);

            if (!empty($key['name'])) {

                $this->upload->initialize($config);
                if (!$this->upload->do_upload($key)) {
                  // echo 'test';die;
//                    rmdir('uploads/category/'.$id);
                    $errors = $this->upload->display_errors();
                    flashMsg($errors);
                }
}
}