【问题标题】:how upload file in codeigniter framework如何在codeigniter框架中上传文件
【发布时间】:2016-08-05 17:49:30
【问题描述】:

我是 codeigniter 的新手。我尝试上传文件,但我没有得到输出。请帮我找出答案。 我的代码是

查看->upload_form.php

<!DOCTYPE html>
<html lang="en">
    <title>
        Upload Form
    </title>

<body>
    <?php echo $error; ?>
    <?php echo form_open_multipart('upload/do_upload'); ?>


        <input type="file" name="userfile" size="20"/>
        <br><br>
        <input type="submit" value="upload"/>
    </form>
</body>
</html>

查看->upload_success.php

<!DOCTYPE html>
<html lang="en">
    <title>
        Upload Form
    </title>

<body>
    <h3>Your file was successfully uploaded!</h3>

    <ul>
        <?php foreach($upload_data as $item => $value); ?>
        <li><?php echo $item; ?>:<?php echo $value; ?></li>

    </ul>
    <p>
        <?php echo anchor('upload','upload another file!'); ?>
    </p>
</body>
</html>

控制器->上传

<?php

class Upload extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
    }

    function index()
    {
        $this->load->view('upload_form', array('error' => ' ' ));
    }

    function do_upload()
    {
        $config['upload_path'] = './uploads/';
        $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())
        {
            $error = array('error' => $this->upload->display_errors());

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

            $this->load->view('upload_success', $data);
        }
    }
}
?>

当我运行程序时,它会显示浏览文件的前端,但是当我选择文件并单击上传按钮时,它会显示空白页。

请帮我找出答案

【问题讨论】:

  • 检查您的日志文件
  • 传递字段名称,如 if (!$this->upload->do_upload('userfile'))
  • 无法正常工作
  • 读取日志文件夹中包含错误的日志文件
  • 我找不到日志文件

标签: php html css codeigniter


【解决方案1】:

您必须在以下几行中传递图像字段名称。

  1. ! $this->upload->do_upload('userfile');

请尝试以上几点并检查。

【讨论】:

    【解决方案2】:

    您的代码运行良好。我已经在我的网络服务器上对其进行了测试。一定是您对文件夹的权限或文件夹位置有问题。您的 uploads 文件夹是否位于您安装 CodeIgniter 的目录中?

    文件夹的位置

    在 CodeIgniter 上传库中,'upload_path' 参数设置为相对于 CodeIgniter 文件夹。

    $config['upload_path'] = './uploads/';
    

    所以这意味着文件夹结构需要是:

    /system/..
    /application/..
    /uploads/..
    /../..
    

    您的 uploads 文件夹必须与系统或应用程序文件夹位于同一文件夹中。

    权限

    在我的网络服务器中,我创建了 uploads 文件夹,权限为:755。您可以随时在 FTP 程序中查看文件夹的权限(在 FileZilla 中:右键单击文件夹 > 文件权限..)。如果不是 755(或更高),也可以尝试设置为这个值。

    【讨论】:

      【解决方案3】:

      检查您的“./uploads/”权限。您可以使用 chmod 更改权限。

      chmod('/path/to/project/folder/images/upload/',0777);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-31
        • 1970-01-01
        相关资源
        最近更新 更多