为什么上传路径无效? (笨)

时间:2012-06-04 12:41:26

标签: php codeigniter file-upload

我有一个带有'do_upload'方法的控制器,它应该将图像上传到/ img,但我得到以下错误:

http://localhost/img/

上传路径似乎无效。

这是上传课程的方法。

public function do_upload(){

        $config['upload_path']= "http://localhost/img/";
        $config['allowed_types']= 'gif|jpg|png';
        $config['max_size']='100';
        $config['max_width']='1024';
        $config['max_height']='768';


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

        if(!$this->upload->do_upload()){
            $errors=array('errors'=>$this->upload->display_errors());
            echo $config['upload_path'];
            $this->load->view('error',$errors);
        }

        else{

            $data=array('upload_data'=> $this->upload->data());

            $this->load->view('admin/admin');
        }
    }

文件权限设置如下(为了测试它的工作原理!):

drwxrwxrwx

但是,如果我将浏览器定向到http://localhost/img/,我可以查看目录的内容,因此我认为这不是一个权限问题。有什么我做错了吗?

4 个答案:

答案 0 :(得分:4)

正如兰兹所说,试试

$config['upload_path']= APPPATH;

$config['upload_path']= APPPATH.'img/';

文件管理和浏览器地址很少相同,从不使用localhost。

修改:有关可能的路径,请参阅my other answer。在大多数情况下,您可能希望使用FCPATH

答案 1 :(得分:3)

您无法上传到网址。 $config['upload_path']必须是服务器上文件系统位置的路径。

答案 2 :(得分:1)

我在几个小时内遇到了同样的问题。

问题是关于config中给出的文件路径。我手动将其更改为绝对路径。 我在WAMP工作。我的项目目录是'rmp' 当我使用配置文件路径时,

  $_SERVER['DOCUMENT_ROOT'].'rmp/uploads/';

一切正常。不知道究竟是什么问题。但这解决了我的问题。 干杯!!! :)

解决方案2:  我做了一些工作,发现CI默认是以项目文件夹为目标。因此,如果您将img作为上传文件夹名称,请确保它位于与应用程序,系统并行的codeigniter的根目录中。

赞,ROOT/yourcodeigniterproject/img

在这种情况下,只需将'img/'作为上传路径即可。工作正常。

答案 3 :(得分:0)

老问题,但没有人指出img文件夹需要在htaccess文件中列出。 根据它的外观(.htaccess代码),如果您使用CI user_guide提供的URL页面,则在robots.txt之后添加pipe devider和img之类的:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|img)
RewriteRule ^(.*)$ /index.php/$1 [L]