2013-10-26 49 views
0

我想上传音频文件(类型mp3,acc,wav)我正在使用cakephp 2.4.1 stablephp5 stable。我试过mime_content_type,finfo_file来检查上传的文件是否为mp3,acc或wav类型的音频文件。但是,我得到这个音频上传在cakephp2.4

`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]` 

我的应用程序目录和根目录DIR被permited与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的错误?

任何人都可以解释我吗?这对我很有帮助

回答

1

看看数据,上传被丢弃,因为有错误。 1等于UPLOAD_ERR_INI_SIZE,以及这样做的原因是:

上传的文件超过php.iniupload_max_filesize指令。

http://php.net/manual/features.file-upload.errors.php

所以,你必须增加价值,并极有可能也post_max_size,看到http://php.net/manual/features.file-upload.common-pitfalls.php以获取更多信息。

而且一旦上传的作品,你必须使用正确的钥匙,这是audio_1,不audio_,也是你接下来要使用tmp_name,即这样的:

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

应该是这个

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

在旁注中,mime_content_type已弃用,取代Fileinfo的扩展。