0

と を使用している音声ファイル (タイプmp3accwav) をアップロードしたいです。アップロードされたファイルがmp3、acc、またはwavタイプのオーディオファイルであるかどうかを確認しようとしました。しかし、私はこれを得るcakephp 2.4.1 stablephp5 stablemime_content_typefinfo_file

`error mime_content_type(059.piya basanti re... [piya basanti][2000].mp3): failed to open stream: No such file or directory [APP/Controller/AdminController.php, line 86]`

アプリ ディレクトリとウェブルート ディレクトリは 0777 で許可されています。

これが私のview.ctpコードです:

<?= $this->Form->create('Homepage',array('type'=>'file'));
echo $this->Form->input('audio_1',array('type'=>'file'));
echo $this->Form->submit('Submit');
echo $this->Form->end(); ?>

私のコントローラーコード

    public function saveaudio() {
            if($this->request->is('post')) {
                $this->loadModel('Homepage');
//this is line 86//   $file = mime_content_type($this->request->data['Homepage']['audio_1']['name']);
                 pr($file);exit;
              }

ここに私のデータがあります

Array
(
    [Homepage] => Array
        (
            [audio_1] => Array
                (
                    [name] => 059.piya basanti re... [piya basanti][2000].mp3
                    [type] => 
                    [tmp_name] => 
                    [error] => 1
                    [size] => 0
                )

        )
)

私の質問は:

  1. ファイルの種類を確認するにはどうすればよいですか? 最初に MIME タイプを確認してから、保存したい
  2. アップロードされたファイルの tmp_name を取得できないのはなぜですか?
  3. mime_content_type でエラーが発生するのはなぜですか?

誰でも説明できますか?それは私にとって役に立ちます

4

1 に答える 1

1

データを確認すると、エラーが発生したためアップロードが破棄されました。1は に等しくUPLOAD_ERR_INI_SIZE、その原因は次のとおりです。

upload_max_filesizeアップロードされたファイルは のディレクティブを超えていますphp.ini

http://php.net/manual/features.file-upload.errors.phpを参照してください。

したがって、その値を大きくする必要があります。詳細については、 http://php.net/manual/features.file-upload.common-pitfalls.phppost_max_sizeを参照してください。

アップロードが機能したら、正しいキーを使用する必要がaudio_1ありaudio_ますtmp_name

$this->request->data['Homepage']['audio_']['name']

これであるべき

$this->request->data['Homepage']['audio_1']['tmp_name']

補足として、拡張機能mime_content_typeを支持して廃止予定です。Fileinfo

于 2013-10-26T12:46:52.447 に答える