2017-02-02 20 views
2

私は2〜3時間、これに関するすべてのstackoverflowスレッドを見て回りました。私が見る限り、多くの人々が私の不満を分かち合います。他の多くのユーザーと同様に、エラーが表示されなくても画像をアップロードすることはできません。Codeigniterは画像をアップロードすることができません

私は唯一の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> 
+2

アップロードパスが正しくないようです。完全な絶対サーバパスでなければなりません...共有ホストの場合など、 'home/account_name/www/my/path/to/folder'のようなものでしょう – Sparky

+1

あなたのパスにはおそらく問題があります。 http://stackoverflow.com/a/41604500/2275490 – Vickel

+0

エラーがありませんでした-_-ちょっとしたサーバーの遅れ –

答えて

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"); 
} 
} 
+1

私はフォームヘルパーか 'action =" <?php echo base_urlから 'form_open_multipart()'を使用します。 ( 'controller/upload_sl') "' – user4419336

0

コードに問題はありません。サーバーのラグがあり、画像が保存されているフォルダはそれ自身で更新されませんでした。みんなの時間を無駄にして申し訳ありません - 私はすべてのあなたの答えをチェックしました。

関連する問題