1

私のhtmlフォーム:

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

私のphpファイル:

if ($_POST['submit'] == "Submit") {
            echo "Upload: " . $_FILES["file"]["name"] . "<br>";
            echo "Type: " . $_FILES["file"]["type"] . "<br>";
            echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
            if (file_exists("/downloads/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"],
                "/downloads/" . $_FILES["file"]["name"]);
                echo "Stored in: " . "/downloads/" . $_FILES["file"]["name"];
            }
}

私のpublic_htmlには2つのフォルダーがあります:tmpおよびdownloads、両方とも777のアクセス許可(テストのみ)

このファイルは、ダウンロード (public_html/downloads/new/update.php) 内の .htaccess で保護されたフォルダーにあり、zip ファイルをダウンロード ディレクトリにアップロードする必要があります。

このコードではエラーは発生しませんが、ファイルはアップロードされません。なんで?

4

3 に答える 3

2

追加してみる

if(move_uploaded_file(...)){
 echo "it works";
} else {
 echo "NOPE";
}

そして置き換えます:

 move_uploaded_file($_FILES["file"]["tmp_name"], "/downloads/" . $_FILES["file"]["name"]);

と:

 move_uploaded_file($_SERVER['DOCUMENT_ROOT'].'/'.$_FILES["file"]["tmp_name"], $_SERVER['DOCUMENT_ROOT']."/downloads/" . $_FILES["file"]["name"]);
于 2013-04-05T21:25:07.380 に答える
1

PHP がアップロードされたファイルを受け取るには MAX_FILE_SIZE が必要です

<form action='' method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10240000">
<input type="file" name="file" id="file">
<input type="submit" name="submit" value="Submit">
</form>

このフォームでは、10 MB 以下の zip アーカイブをアップロードできます...

ファイルをアップロードするには、php.ini の max_post_size と upload_max_filesize を同じかそれ以上の値に設定する必要があります。

このPHPコードを使用してください

if ((isset($_POST['submit']) && $_POST['submit'] == "Submit") AND isset($_FILES)) {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
        if (file_exists("/downloads/" . $_FILES["file"]["name"]))
        {
            echo $_FILES["file"]["name"] . " already exists. ";
        }
        else
        {
            if(move_uploaded_file($_FILES["file"]["tmp_name"],
            "/downloads/" . $_FILES["file"]["name"]))
                   echo "Stored in: " . "/downloads/" . $_FILES["file"]["name"];

            else echo "file could not be processed";
        }

}

于 2013-04-05T22:04:51.790 に答える
0

これは私がそれを解決した方法です:

HTML:

<form enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
<input type="file" name="file" id="file">
<input type="submit" name="submit" value="Submit">
</form>

PHP:

if($_POST['submit'] == "Submit") {
    $filename = $_FILES["file"]["name"];
    $source = $_FILES["file"]["tmp_name"];
    $type = $_FILES["file"]["type"];
    $name = explode(".", $filename);
    $target_path = "../".$filename;
    if(move_uploaded_file($source, $target_path)) {
        $message = "Your .zip file was uploaded";
    } else {    
        $message = "ERROR";
    }
        if($message) echo $message;
}
于 2013-04-06T09:08:49.617 に答える