【问题标题】:Codeigniter cannot upload imageCodeigniter 无法上传图片
【发布时间】:2017-02-02 18:26:13
【问题描述】:

我已经在谷歌上搜索了 2-3 个小时,查看与此相关的每个 stackoverflow 线程。据我所知,很多人都和我一样感到沮丧。像许多其他人一样,我无法上传图片,即使它没有显示错误。

我确实尝试了我在网上找到的任何东西,但似乎没有任何效果......

我只能通过 var_dump($_FILES) 查看图像的属性。我想将图像存储到文件夹中,并将其名称存储到数据库中。

控制器

function upload_sl()
{ 
    $config['upload_path'] = 'sliki/samurajsliki/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '10000';

$this->load->library('upload', $config);
/*$this->upload->initialize($config);*/
/*var_dump($_FILES);*/
if ( ! $this->upload->do_upload())
{
  $error = array('error' => $this->upload->display_errors());

  $this->load->view('samuraj/slikaclen', $error);
}
else
{
  $data = array('upload_data' => $this->upload->data());

  $this->load->view('header_samurajmain');
  $this->load->view('samuraj/admin_samuraj');
  $this->load->view('footer_subpage');
}
}

查看

<?php echo $error;?>
                   <div class="center-block" style="width: 30%; height: 50%; clear:both;">
                   <?php echo form_open_multipart('admin_page/upload_sl');?>
                    <input type="file" name="userfile" size="20" />

                    <br />

                    <input type="submit" value="Стави нова слика" />
                    </form>
                     </div>

【问题讨论】:

  • 您的上传路径似乎不正确。它应该是一个完整的绝对服务器路径......例如在共享主机上,它会类似于home/account_name/www/my/path/to/folder
  • 很可能是您的路径有问题。检查这个:stackoverflow.com/a/41604500/2275490
  • 没有错误 -_- 只是一些服务器延迟

标签: php codeigniter


【解决方案1】:

我在我的档案中找到了这个。我不知道它是否工作。 也许你想试试。

<form action="admin/#/add_content/do_upload" enctype="multipart/form-data" method="post" accept-charset="utf-8">
      <input type="file" class="mb5" name="userfiles[]" multiple>
</form>

这里是控制器。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Upload extends CI_Controller {

public function __construct(){
    parent::__construct();
}

public function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';

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

    $files = $_FILES;
    $cpt = count($_FILES['userfile']['name']);
    for($i=0; $i<$cpt; $i++)
    {           
        $_FILES['userfile']['name']= $files['userfile']['name'][$i];
        $_FILES['userfile']['type']= $files['userfile']['type'][$i];
        $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];
        $_FILES['userfile']['error']= $files['userfile']['error'][$i];
        $_FILES['userfile']['size']= $files['userfile']['size'][$i];    

        if($this->upload->do_upload()){
            echo "File ".$_FILES["userfile"]["name"]. " has been uploaded.\n";
        }
        else{
            //Error. this->upload->display_errors();
        }
    }
    header("Location: http://localhost:82/MyCRM/admin/#/add_content");
 }
 }

【讨论】:

  • 我在表单助手或action="&lt;?php echo base_url('controller/upload_sl')"中使用form_open_multipart()
【解决方案2】:

使用库 Codeigniter (library upload single file and multi file) 轻松上传。

【讨论】:

    【解决方案3】:

    代码没有问题。存在服务器延迟,并且图像所在的文件夹没有自行刷新。很抱歉浪费大家的时间 - 我确实检查了你所有的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多