0

我有一个带有“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

4 回答 4

4

正如lanzz所说,尝试

$config['upload_path']= APPPATH;

或者

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

文件管理和浏览器地址很少相同,而且从不与 localhost 相同。

编辑:请参阅我的其他答案以了解可能的路径。在大多数情况下,您可能想要使用FCPATH.

于 2012-06-04T12:57:01.387 回答
3

您不能上传到 URL。$config['upload_path']必须是服务器上文件系统位置的路径。

于 2012-06-04T12:45:48.387 回答
1

我面临同样的问题几个小时。

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

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

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

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

像, ROOT/yourcodeigniterproject/img

在这种情况下,只需提供'img/'您的上传路径。工作正常。

于 2013-06-17T08:29:33.667 回答
0

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

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|img)
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2014-04-19T19:21:29.500 回答