この投稿の最後にあるコード スニペットを参照してください...
move_uploaded_file
を使用して tmp ファイルを別のディレクトリに移動しようとすると、常にエラー コード 0 が返されます。ディレクトリが存在し、パーミッションが 775 に設定されていることを確認しました。また、サーバー管理者に確認したところ、エラー ログに、私が抱えている問題を説明するエラーが表示されていないとのことです。
使用時にエラー コード 0 を回避するにはどうすればよいmove_uploaded_file
ですか?
$audio_dir = "/mbc/data/audio/";
if (isset($_POST['upload_audio'])) {
$title = mysql_real_escape_string($_POST['audio_title']);
$category = mysql_real_escape_string($_POST['audio_category']);
$audio_name = basename($_FILES['audio_file']['name']);
$uploadfile = $audio_dir.$audio_name;
$query = mysql_query("SELECT COUNT(*) FROM media where path = '" . $audio_name . "'");
$result = mysql_result($query, 0, 0);
if (($title == '') || ($title == NULL) ||
($category == '') || ($category == NULL) ||
($audio_name == '') || ($audio_name == NULL)) {
echo "<span class='error'>Title, Category and Audio file are required fields</span>";
} else if ($result > 0) {
echo "<span class='error'>Media $audio_name already exists - please upload with a different name</span>";
} else if (ctype_alpha($category) === false) {
echo "<span class='error'>Category can only have letters (no spaces, commas, numbers, etc...)</span>";
} else if (ctype_alnum(substr($audio_name, 0, strpos($audio_name, '.'))) === false) {
echo "<span class='error'>Bad filename - $audio_name - can only contain letters and numbers (i.e. 'HowGreatThouArt.mp3')</span>";
} else {
if (move_uploaded_file($_FILES['audio_file']['tmp_name'], $uploadfile)) {
$queryInsertAudio = "insert into media (title, path, category ) values ('{$title}','{$audio_name}','{$category}')";
$result = mysql_query($queryInsertAudio);
if ($result) {
echo "<span class='success'>AUDIO $audio_name UPLOADED SUCCESSFULLY</span>";
} else {
echo "<span class='error'>FAILED TO INSERT RECORD FOR $audio_name - PLEASE CONTACT ADMINISTRATOR</span>";
}
} else {
echo "<span class='error'>FAILED TO UPLOAD AUDIO $audio_name - PLEASE CONTACT ADMINISTRATOR<br />" .
"ERROR CODE = " . $_FILES['audio_file']['error'] . "<br />" .
"Temp filename=" . $_FILES['audio_file']['tmp_name'] . "<br />" .
"Uploadfile=" . $uploadfile . "<br />" .
print_r($_FILES) .
"</span>";
}
}
}