Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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上载脱机工作但不联机_Php_Codeigniter - Fatal编程技术网

Php Codeigniter上载脱机工作但不联机

Php Codeigniter上载脱机工作但不联机,php,codeigniter,Php,Codeigniter,嗨,我想上传一个100 x 100像素的图像作为每个用户在我的网站上的标志。它可以在我的本地主机上工作,但不能在线工作(图像未上载)。这个概念很简单,我只是上传它,根据他们的ID重命名图像,然后在他们的页面上显示,让他们查看。另外,localhost版本会更改指定路径上的图像,但有时在上传后不会显示,但有时效果很好。这不是什么大问题,我只是觉得这可能是解决这个问题的线索。以下是我目前的代码: 这在顶部声明: $data['base'] = $this->config->base_ur

嗨,我想上传一个100 x 100像素的图像作为每个用户在我的网站上的标志。它可以在我的本地主机上工作,但不能在线工作(图像未上载)。这个概念很简单,我只是上传它,根据他们的ID重命名图像,然后在他们的页面上显示,让他们查看。另外,localhost版本会更改指定路径上的图像,但有时在上传后不会显示,但有时效果很好。这不是什么大问题,我只是觉得这可能是解决这个问题的线索。以下是我目前的代码:

这在顶部声明:

$data['base'] = $this->config->base_url();
$data['check_error'] = false;
$data['error_message'] = array();
$data['id'] = $this->session->userdata('id');
代码如下:

if (isset($_FILES['userfile']) && is_uploaded_file($_FILES['userfile']['tmp_name'])){
                    $new_name = $data['id'];

                $config['upload_path'] = './Logos/';
                $config['allowed_types'] = 'jpg|png|gif';
                $config['encrypt_name'] = true;
                $config['max_size'] = '100';
                $config['max_width']  = '100';
                $config['max_height']  = '100';

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

                    if ( ! $this->upload->do_upload())
                    {
                        array_push($data['error_message'], "You have the following errors in your entry:\n");
                        array_push($data['error_message'], "- Logo must be 100x100 pixels in size not exceeding 100KB with JPG,PNG or GIF format");
                        array_push($data['error_message'], "\nLogo upload failed.");
                        $data['check_error'] = true;
                    }
                    else
                    {
                        $data = array('upload_data' => $this->upload->data());

                        //DO UPDATE PART HERE
                        $file = $data['upload_data']['file_name'];
                        rename($config['upload_path'] . $file, $config['upload_path'] .$new_name.'.jpg');
                        //GO TO SETTINGS
                        $this->load->helper('url');  
                        redirect($data['base'].'settings');

                    }
                }
HTML:


徽标

100px 100px仅限jpg、png或gif格式

当前徽标

“style=”保证金:0px 0px 0px 90px;"/>

我也在PHP本地和5.2.17在线使用CodeIgniter_2.1.3和5.4.3。真是疯了哈哈!

你应该查看文件名部分。首先,你已经将条件
encrypt_name
设置为true。尽管你已经将文件重命名为id,但这并不是必需的。 将新文件名设置为等于

$data['id'].".jpg" 

如果上传的文件是GIF或PNG图像,这将永远无法工作…

您是否在线检查了“Logos”文件夹权限?是的。它已设置为权限777。因此,即使我在重命名后上传GIF/PNG,文件也会转换为jpg?可能是rename()函数,您可以在需要绝对路径时传递它。“/Logos/”(www/var/something/nananana/htdocs/logos/),具体取决于您的服务器设置。从测试环境移动到liver服务器时,我遇到了类似的问题。您应该查看文件名部分。首先,您已将条件encrypt\u name设置为true。尽管您仍将文件重命名为id,但这不是必需的。此外,您还将新文件名设置为“user\u id.jpg”“-这在GIF或PNG图像上永远不起作用…此外,当从本地移动到web服务器时,请始终深入了解上载路径、分隔符和权限。这可能是上载路径将您弄得一团糟。
$data['id'].".jpg"