2

奇妙なことに、このスクリプトはローカル (MAMP) では機能しますが、リモート サーバー (Bluehost) では機能しません。POST データを追加してみましたが、うまくいきましたが、ファイルのアップロードはまったく機能しません。何か案は?

//upload file
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 2000000) && isSet($_FILES["file"])){
if ($_FILES["file"]["error"] > 0){
    echo "<div class='error'>Return Code: " . $_FILES["file"]["error"] . "</div>";
}else{
    if (file_exists("../upload/" . $_FILES["file"]["name"])){
        echo "<div class='error'>" . $_FILES["file"]["name"] . " already exists. </div>";
    }else{
        move_uploaded_file($_FILES["file"]["tmp_name"],
        "../upload/" . $_FILES["file"]["name"]);
    }
}
}else{
if((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg"))){
    //echo "<div class='error'>Invalid file</div>";
}else{
    if(isSet($_FILES["file"]["type"]) && !isSet($message)){
        echo "<div class='error'>Invalid file type.</div>";
    }
}
}

アップロードフォームはこちら。

<form action="index.php" method="post" enctype="multipart/form-data">
            <div>
                <input type="file" name="file" id="file" />
                <input type="submit" id="submit" value="Submit" />
            </div>
        </form>

アップロードフォルダーのパーミッションは「775」に設定されています。

ヘルプ/アイデアをいただければ幸いです。

アップデート

問題が解決しました。それは php.ini の問題でした。問題が正確にどこにあるのかわかりません。ただし、デフォルトのphp.iniファイルを復元すると、機能しました。

4

1 に答える 1

0

サーバー内のupoadingフォルダーの読み取り/書き込み-実行権限に問題があると思います。宛先フォルダーに読み取り/書き込み-実行(777)権限があることを確認してください。

于 2012-05-23T05:39:47.517 に答える