私は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 )
)
Codeigniterには素晴らしいアップロードライブラリがあります。なぜあなたはそれを使用していないのですか? – goseo
混乱しないでください:0はアップロードプリプロセッサから来ます( '$ _FILES ['userfile'] ['error']'); 'move_uploaded_files()'はコードを返すのではなく、ブール値を返します(あなたの場合は 'true'と表示されます)。その段階でエラーが発生すると、PHP警告として表示されます。 –
CodeIgniterでdo_upload()を使用すると、 – Fil