2016-06-27 5 views
0

私はcodeigniter 3.0.6を使用しているプロジェクトに取り組んでおり、いくつかのモジュールで画像をアップロードする必要があります。問題はmove_uploaded_fileがエラーコード0を返すが、ファイルが見つからないということです。現在、私のlocalhostでこのコードを実行しています。それだけがエラーコードを返したら、私は何かできます。誰もがこれで私を助けることができますか?move_uploaded_fileはエラーコード0を返しますが、ファイルは自分のディレクトリにアップロードされていませんか?

私もMove_uploaded_file() function is not workingと読みましたが、下のコードは "動作中のサンプル"の回答に基づいていますが、まだ動作していません(エラーコード0ですがディレクトリにファイルがありません)。 mkdir($uploaddir, 0777, true);部分は役に立たないようです。

これは私のビューファイル(display.php)です:

<html> 
    <head> 
     <meta charset="utf-8"> 
    </head> 
    <body> 
     <form enctype="multipart/form-data" action="submit" method="POST"> 
      <input type="hidden" name="MAX_FILE_SIZE" value="51200000" /> 
      Send this file: <input name="userfile" type="file" /> 
      <input type="submit" value="Send File" /> 
     </form>  
    </body> 
</html> 

と、これは私のコントローラファイル(test.phpを)です:

function display() 
{ 
    $this->load->view('display'); 
} 

function submit() { 
    $uploaddir = '/assets/img/guide/'; 
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 

    if (!file_exists($uploaddir)) { 
     mkdir($uploaddir, 0777, true); 
    } 

    echo "<p>"; 
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
     echo "File is valid, and was successfully uploaded.\n"; 
    } else { 
     echo "Upload failed"; 
    } 
    echo "</p>"; 

    echo '<pre>'; 
    echo 'Error code:'; 
    print_r($_FILES['userfile']['error']); 
    print "</pre>";  

    echo '<pre>'; 
    echo 'Here is some more debugging info:'; 
    print_r($_FILES); 
    print "</pre>";  

    echo $this->load->view('display', $this->data); 
} 

と私が提出した後、これが結果です形式:

ファイルが有効であり、正常にアップロードされました。

エラーコード:0ここ

は、いくつかのより多くのデバッグ情報である:配列( [userfile] =>配列 ( [名] => Hydrangeas.jpg [タイプ] =>画像/ JPEG [ tmp_name] => C:\ XAMPP \ TMP \ php46FD.tmp [エラー] => 0 [サイズ] => 595284 )

+1

Codeigniterには素晴らしいアップロードライブラリがあります。なぜあなたはそれを使用していないのですか? – goseo

+1

混乱しないでください:0はアップロードプリプロセッサから来ます( '$ _FILES ['userfile'] ['error']'); 'move_uploaded_files()'はコードを返すのではなく、ブール値を返します(あなたの場合は 'true'と表示されます)。その段階でエラーが発生すると、PHP警告として表示されます。 –

+0

CodeIgniterでdo_upload()を使用すると、 – Fil

答えて

0

それは、私のプロジェクトのベースフォルダ(D:/ myproject/dev /)に行くのではなく、アップロードされたファイルが判明したので、ファイルはハードドライブフォルダ(D:/)にアップロードされたので、ミステリーが解決したと思います。私はちょうどアップロードのためのターゲットフォルダを指示する方法を把握する必要があります。多分私は別の質問の投稿にそれを入れます。

ありがとうございました

関連する問題