2011-12-27 44 views
1

我有尝试和尝试,我只是不能让我的形象上传。 当我试图回显它时,我不能抓住我的图像名称:S。codeigniter图像上传不能抓取文件名

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

这里是我的控制器:

<?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 --> 
+0

检查有任何错误与'$这个 - > upload->的display_errors()'你试图抓住的文件名 – Kokers 2011-12-27 11:04:28

+0

@Kokers之前,我得到这个错误:上传路径似乎并不有效。我如何获得完整的路径?我的文件夹不在应用程序文件夹中,但在根文件夹 – sij 2011-12-27 12:13:24

+0

请确保目标文件夹是可写的(775或777) – phirschybar 2011-12-27 14:04:12

回答

4

我编辑了自己的代码。它可能适合你。如果您的文件夹位于应用程序的根文件夹中,则无需使用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); 
} 
+0

该死的谢谢:),但如果我想抓住加密名称,我该怎么做? – sij 2011-12-28 11:06:56

+0

我不知道你为什么要抓住加密的名字? – srbhbarot 2011-12-28 13:52:19

+0

因为我想在数据库中存储名称,所以我可以显示正确的新闻图像到我的新闻稿:) – sij 2011-12-28 13:54:41