0

この投稿の最後にあるコード スニペットを参照してください...

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>";
        }
    }
}
4

1 に答える 1

0

おっと...オフになっていたのは私の$audio_dirファイルパスでした...それを修正し、問題なくアップロードできるようになりました...

于 2012-05-25T13:43:58.003 に答える