0

私は Web サイトを持っています。ここでは、曲 (mp3) をアップロードするための php 関数を実装し、その曲を再生する必要があります。私はコードをしました。私のコードを見てください

if(trim($_FILES['frmFile']['name'])!=""){ 
        if (($_FILES["frmFile"]["type"] == "audio/mpeg" || $ext=="mp3" ||  $ext=="MP3")&& ($_FILES["frmFile"]["size"] < 2000000))
            { 
            if ($_FILES["frmFile"]["error"] > 0)
            {
                $error="Error In Uploading";
                exit;
            }
            else
            {
                $orgFileNmae=$_FILES['frmFile']['name'];
                $uniqname = rand().$fileName.".".$ext;
                 $uploadfile=$uploaddir.$uniqname;

                if(move_uploaded_file($_FILES['frmFile']['tmp_name'], $uploadfile)) {

                }

            }
            }else{
                $error="Invalid file";

            }

            }

オンラインから mp3 の曲をダウンロードし、ファイルをアップロードしようとしましたが、

アップロード中にエラーが発生しました。ファイル属性を印刷してから、取得しました$_FILES["frmFile"]["error"] =1

次に、ダウンロードしたコードをvLcと他のプレーヤーで再生するだけで、うまく機能しています。次に、このファイルが正しくアップロードされないのはなぜですか..

アップロードされたファイル配列を印刷してから、結果を得ました

Array ( [name] => blind_willie.mp3 [type] => [tmp_name] => [error] => 1 [size] => 0 )

誰か知っていますか ?

誰もがmp3曲をアップロードするための良いコードを持っています

前もって感謝します

4

2 に答える 2

1

PHPドキュメントによると、アップロードエラー1は、ファイルが大きすぎて、事前設定されたPHPの最大許容アップロードファイルサイズを超えていることを意味します。

コードのロジックフローも逆方向です。最初に確認する必要があるのは、他の['error']ことを行う前のパラメーターです。アップロードに失敗した(または存在しない)有効なファイル名を取得できない場合がありますが、それでもすべてが正常に行われたかのように続行します。また、ユーザーが偽のファイル名を提供しないことを信頼し、ユーザーが提供したファイル名をアップロードセキュリティの基礎として使用しています。nastyvirus.exeそのファイル名を偽造するのは簡単で、名前をに変更するだけで、必要なものをアップロードできますgoodsong.mp3

if ($_FILES['frmFile']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['frmFile']['error']);
}
$finfo = new finfo(FILEINFO_MIME_TYPE);
if($finfo->file($_FILES['frmFile']['tmp_name']) != 'audio/mpeg') {
    die("Invalid file type uploaded");
}
etc...
于 2012-09-10T05:16:40.910 に答える
0

ファイルのアップロードサイズを増やすには、次の値を設定する必要があります

file_uploadsile_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size

乾杯

于 2012-09-10T05:17:31.817 に答える