uploadify使用CI自带的upload类上传报错

时间:2022-06-01 19:23:26
我使用的是CI2.0,CI控制器部分代码

function up() {

//print_r($_FILES['userfile']['tmp_name']);exit; 在这里可以取到上传内容
$uid = get_cookie('user_id');
        if ($uid) {
$this->load->model('Usermodel');
            $path = $_SERVER["DOCUMENT_ROOT"] . "/upfiles/photo/" . $uid;
            if (!file_exists($path)) {
                mkdir($path, 0777);
            }
                
            $config['upload_path'] = $path;
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = '1000000';
            $config['max_width'] = '6000';
            $config['max_height'] = '6000';
            $config['encrypt_name'] = 'true';
            $this->load->library('upload', $config);
            if (!$this->upload->do_upload()) {
                echo  $error =  $this->upload->display_errors(); //然后走到这里报错You did not select a file to upload.

            } else {
                $this->load->library('image_lib');

11 个解决方案

#1


你的上传控件名是 userfile
但你似乎并没用通知 upload,难道是默认的?

#2


嗯 这个我在uploadify那边已经设置为userfile了,我问了下别人,他们说ajax 上传,这是这个上传组件的问题
你要找到如何定义 name
也就是 $_FILES 里的 name
CI 不管你是什么上传 ,但是我不清楚控制器那么哪个值要取$_FILES 里的 name,或者把$_FILES 里的 name 传给谁

#3


$this->upload->do_upload( 上传控件的名字 )
你可用 print_r($_FILES) 查看一下

#4


print_r($_FILES)是有值的 但是还是不行

#5


网上下载就能用

#6


引用 4 楼 ahkxhyl 的回复:
print_r($_FILES)是有值的 但是还是不行
都看到了什么?

#7


Array
(
    [userfile] => Array
        (
            [name] => 75702,106.jpg
            [type] => application/octet-stream
            [tmp_name] => C:\Windows\Temp\php1743.tmp
            [error] => 0
            [size] => 256646
        )

)

#8


$this->upload->do_upload('userfile')

#9


 $config['upload_path'] = $path;
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = '1000000';
            $config['max_width'] = '6000';
            $config['max_height'] = '6000';
            $config['encrypt_name'] = 'true';
           $this->load->library('upload', $config);
foreach ($_FILES as $key => $value){
//if( ! empty($value['name'])){
            if (!$this->upload->do_upload($key)) {  //$key就是userfile
                echo  $error =  $this->upload->display_errors();
print_r($this->upload->data());
            } else {
                $this->load->library('image_lib');
                $redata = $this->upload->data();
现在情况是不报错 但是文件上传不成功,不知道哪里错了

#10


可能是目标路径有问题
我没用过 ci ,这能依据说明书提示你可能的问题所在

#11


多谢了  我再看看

#1


你的上传控件名是 userfile
但你似乎并没用通知 upload,难道是默认的?

#2


嗯 这个我在uploadify那边已经设置为userfile了,我问了下别人,他们说ajax 上传,这是这个上传组件的问题
你要找到如何定义 name
也就是 $_FILES 里的 name
CI 不管你是什么上传 ,但是我不清楚控制器那么哪个值要取$_FILES 里的 name,或者把$_FILES 里的 name 传给谁

#3


$this->upload->do_upload( 上传控件的名字 )
你可用 print_r($_FILES) 查看一下

#4


print_r($_FILES)是有值的 但是还是不行

#5


网上下载就能用

#6


引用 4 楼 ahkxhyl 的回复:
print_r($_FILES)是有值的 但是还是不行
都看到了什么?

#7


Array
(
    [userfile] => Array
        (
            [name] => 75702,106.jpg
            [type] => application/octet-stream
            [tmp_name] => C:\Windows\Temp\php1743.tmp
            [error] => 0
            [size] => 256646
        )

)

#8


$this->upload->do_upload('userfile')

#9


 $config['upload_path'] = $path;
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = '1000000';
            $config['max_width'] = '6000';
            $config['max_height'] = '6000';
            $config['encrypt_name'] = 'true';
           $this->load->library('upload', $config);
foreach ($_FILES as $key => $value){
//if( ! empty($value['name'])){
            if (!$this->upload->do_upload($key)) {  //$key就是userfile
                echo  $error =  $this->upload->display_errors();
print_r($this->upload->data());
            } else {
                $this->load->library('image_lib');
                $redata = $this->upload->data();
现在情况是不报错 但是文件上传不成功,不知道哪里错了

#10


可能是目标路径有问题
我没用过 ci ,这能依据说明书提示你可能的问题所在

#11


多谢了  我再看看