【问题标题】:codeigniter image upload cant grab file namecodeigniter图片上传无法抓取文件名
【发布时间】:2012-01-28 10:50:18
【问题描述】:

我已经尝试过,但我无法上传我的图片。 当我尝试呼应它时,我无法抓住我的图像名称:S.

你能看到我做错了什么吗?

这是我的控制器:

<?php 
//ADMIN PAGE
if (! defined('BASEPATH')) exit('No direct script access');

class News extends CI_Controller {


    //Write post when logged in as admin
    function write()
    {

        //insert image
        $config['upload_path'] = APPPATH .'/archive/img/news/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png';
        $config['max_size']         = '9000';
        $config['encrypt_name']     = true;

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

        $file_data = $this->upload->data();

        $newsData = array(
            'headline'      => $this->input->post('headline'),
            'description'   => $this->input->post('description'),
            'content'       => $this->input->post('content'),
            'creater'       => $this->session->userdata('username'),
            'ip'            => $this->session->userdata('ip'),
            'imgPath'       => $file_data['file_name']
        );


        echo "<pre>";
        //print_r( $this->upload->data());
        //print_r($file_data);
        //print_r($_FILES);
        //print_r($this->input->post());
        print_r($newsData);
        echo "</pre>";


        $this->load->model('admin/news_model');
        $this->news_model->insertNews($newsData);


        $data['main_content'] = 'admin/write_view';
        $this->load->view('template', $data);

    }

}

还有我上传图片的视图文件

<div id="inputStyle">


<?php

echo form_open_multipart('admin/news/write');

echo form_input('headline', 'overskrift');

echo form_upload('newsImage');

echo form_textarea('description', 'indhold');

echo form_textarea('content', 'content');

echo form_submit('create', 'Opret nyhed');

echo form_close();


?>




</div><!-- inputStyle -->

【问题讨论】:

  • 在尝试获取文件名之前检查$this-&gt;upload-&gt;display_errors()是否有任何错误
  • @Kokers 我收到此错误:上传路径似乎无效。我如何获得完整路径?我的文件夹不在应用程序文件夹中,而是在根文件夹中
  • 确保目标文件夹可写(775 或 777)
  • config['upload_path'].. 中删除 APPPATH。如果我理解你的正确,这应该对你有用。

标签: php image codeigniter upload


【解决方案1】:

我已经编辑了您的代码。它可能对你有用。如果您的文件夹位于应用程序的根文件夹中,则无需使用 APPPATH。我还在您的代码中对此进行了编辑。试试这个。

//Write post when logged in as admin
function write()
{
    //insert image
    $config['upload_path'] = 'archive/img/news/';
    $config['allowed_types'] = 'gif|jpg|jpeg|png';
    $config['max_size']         = '9000';
    $config['encrypt_name']     = true;

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

    $file_data = $this->upload->data();

    $newsData = array(
        'headline'      => $this->input->post('headline'),
        'description'   => $this->input->post('description'),
        'content'       => $this->input->post('content'),
        'creater'       => $this->session->userdata('username'),
        'ip'            => $this->session->userdata('ip'),
        'imgPath'       => $_FILES['newsImage']['name']
    );


    echo "<pre>";
    //print_r( $this->upload->data());
    //print_r($file_data);
    //print_r($_FILES);
    //print_r($this->input->post());
    print_r($newsData);
    echo "</pre>";


    $this->load->model('admin/news_model');
    $this->news_model->insertNews($newsData);


    $data['main_content'] = 'admin/write_view';
    $this->load->view('template', $data);
}

【讨论】:

  • 该死的谢谢 :),但是如果我想获取加密的名称,我该怎么做呢?
  • 不知道你为什么要抢加密名字?
  • 因为我想将名称存储在数据库中,这样我就可以在我的新闻帖子中显示正确的新闻图像:)
  • 您可以在数据库中存储图像的真实姓名。
  • 但在我的文件夹中,图像名称是加密名称 :(
猜你喜欢
  • 2015-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
相关资源
最近更新 更多