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