Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter-一种形式的两个上载字段_Codeigniter_Upload - Fatal编程技术网

Codeigniter-一种形式的两个上载字段

Codeigniter-一种形式的两个上载字段,codeigniter,upload,Codeigniter,Upload,我正试图在Codeigniter中上传一个图像和一个mp3,来自一个有两个文件输入字段的表单。图像字段称为userfile,mp3字段称为trackfile 在我的模型中,我有以下代码(已修改): $image\u resource=$this->library\u model->upload\u image($\u文件); $data=数组( 'name'=>this->input->post('name'), “imageresource”=>$image\u资源 );

我正试图在Codeigniter中上传一个图像和一个mp3,来自一个有两个文件输入字段的表单。图像字段称为userfile,mp3字段称为trackfile

在我的模型中,我有以下代码(已修改):

$image\u resource=$this->library\u model->upload\u image($\u文件);
$data=数组(
'name'=>this->input->post('name'),
“imageresource”=>$image\u资源
);          
$this->db->insert('table_name',$data);
$insert_id=$this->db->insert_id();
如果($\u文件&&$\u文件['trackfile']['name']!==“”){
$config=array(
“允许的\u类型”=>“mp3”,
“上传路径”=>“./assets/samples/”
);
$this->load->library('upload',$config);
//echo“即将上传”;
如果($this->upload->do_upload('trackfile')){
$file_data=$this->upload->data();
//echo“上传:”;打印($file_数据);echo“”;die();
$config = array(
            'allowed_types' => 'audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg',
            'upload_path' => './assets/samples/'
           );
$track_data['trackfile']=$file_data['file_name']; $this->db->where('id',$insert\u id); 返回$this->db->update('table\u name',$track\u data); }否则{ echo“失败:”; echo$this->upload->display_errors(); echo“文件数据:”;打印($_文件['trackfile']);echo“”; } }
我的问题是,这会产生错误“您试图上传的文件类型是不允许的。”我已经检查了mp3类型,它是audio/mpeg,在mimes.php文件中

只有在我上传图像时才会发生这种情况。如果我将图像字段留空,则mp3上传效果良好。非常感谢您的帮助。

编辑

根据CI文档,配置的
allowed_types
部分是以管道分隔的mime类型列表,而不是文件扩展名。例如,
mp3
具有mime类型“audio/mpeg”。因此,您的
允许的\u类型
配置应该如下所示:

如果不起作用,请尝试初始化所述库。

编辑

根据CI文档,配置的
allowed_types
部分是以管道分隔的mime类型列表,而不是文件扩展名。例如,
mp3
具有mime类型“audio/mpeg”。因此,您的
允许的\u类型
配置应该如下所示:


如果这不起作用,请尝试初始化所提到的库。

谢谢您的回复——我的代码可能不够清晰,但这不是问题,因为当它进入mp3上传时,它已经上传了图像(这里:$this->library\u model->upload\u image($\u文件))。再次感谢您的尝试。但是,mime类型的列表是从mimes.php中提取的:这里mp3与audio/mpeg匹配(这是我试图上传的类型)。无论如何,我尝试了你的方法,以防万一,但仍然没有成功。@Gregthoma是最后一次尝试
初始化
如图所示的库-Borislav我可以嫁给你!它成功了,谢谢你的坚持。你能修改你的答案吗?这样我就可以接受了?还是这是不允许的?@GregThomas谢谢。就这么做了。很高兴我能帮上忙。谢谢你的回复——我的代码可能不够清晰,但这不是问题所在,因为当它上传到mp3时,它已经上传了图像(这里:$this->library\u model->upload\u image($\u FILES))。再次感谢你的尝试。但是,mime类型的列表是从mimes.php中提取的:这里mp3与audio/mpeg匹配(这是我试图上传的类型)。无论如何,我尝试了你的方法,以防万一,但仍然没有成功。@Gregthoma是最后一次尝试
初始化
如图所示的库-Borislav我可以嫁给你!它成功了,谢谢你的坚持。你能修改你的答案吗?这样我就可以接受了?还是这是不允许的?@GregThomas谢谢。就这么做了。很高兴我能帮忙。
$config = array(
            'allowed_types' => 'audo/mpeg|audio/x-wav|audio/x-aiff|application/ogg',
            'upload_path' => './assets/samples/'
           );