質問

次のようにHTMLフォームを持っています。

<form id="addTrack" action="/worship/script/upload.php" method="post" enctype="multipart/form-data">
    <label>File:</label>
    <input type="file" name="uploaded" id="addTrackFile"/>
    <label>Key Title: </label>
    <input type="text" name="title" id="addTrackTitle"/>
    <input type="hidden" name="id" id="addTrackId"/><br>
</form>
<button onclick="uploadAddTrack()">Upload</button>
<button onclick="closeAddTrack()">Close</button>
.

ファイルがサーバに正しくアップロードされたフォームを送信すると、PHPアクションスクリプトにリダイレクトされると、最初のエラーキャッチで停止します。スクリプトは次に、それが空の配列として返される$_FILES変数をダンプします。下のコードで見ることができるように、私はそれがエラーをエコーしていますが、それはまた空の文字列をエコーします。

$_FILESアレイにファイルを取得していないのはなぜですか?

私のPHPコード:

$id=$_POST["id"];
$name=$_POST["title"];

$name = str_replace(" ","",$name);

$allowed_filetypes = array('.mp3','.m4a','.wav','.wma');

$filename = $_FILES['uploaded']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);

$target = "../audio/"; 
$target = $target . $id. "_".$name.$ext; 
$ok=1; 

if ($_FILES['uploaded']['error'] !== UPLOAD_ERR_OK) {
    //------------This is where it gets stopped-----------------//

        var_dump($_FILES);
    echo $_FILES["uploaded"]["error"];
    return;
}

if(!in_array($ext,$allowed_filetypes))
die("This file type is not allowed");

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{
include("updateDB.php");

header("Location:/worship/cpanel/?autoload=$id");
} 
.

アップロードしているファイルのサイズは9MBです。

私のphp.ini関連情報

file_uploads:on

upload_max_filesize:25m

upload_tmp_dir:value

MAX_POST_SIZE:8M

役に立ちましたか?

解決

php.iniファイルをチェックしてください。ポストサイズが8mより大きいことを確認してください。それがデフォルトで、9MBの情報を送信しているからです。

 `; Maximum size of POST data that PHP will accept.

post_max_size = 8M`
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top