我正在尝试从具有两个文件输入字段的表单在 Codeigniter 中上传图像和 mp3。image 字段称为 userfile,mp3 字段称为 trackfile。
在我的模型中,我有这个代码(修改):
$image_resource = $this->library_model->upload_image($_FILES);
$data = array(
'name' => $this->input->post('name'),
'imageresource' => $image_resource
);
$this->db->insert('table_name',$data);
$insert_id = $this->db->insert_id();
if ($_FILES && $_FILES['trackfile']['name'] !== "") {
$config = array(
'allowed_types' => 'mp3',
'upload_path' => './assets/samples/'
);
$this->load->library('upload',$config);
//echo 'about to upload';
if ($this->upload->do_upload('trackfile')) {
$file_data = $this->upload->data();
//echo 'uploaded: <pre>'; print_r($file_data); echo '</pre>'; die();
$track_data['trackfile'] = $file_data['file_name'];
$this->db->where('id', $insert_id);
return $this->db->update('table_name',$track_data);
} else {
echo 'Failed: ';
echo $this->upload->display_errors();
echo 'FILE DATA: <pre>'; print_r($_FILES['trackfile']); echo '</pre>';
}
}
我的问题是这会产生错误“不允许您尝试上传的文件类型”。我检查了 mp3 类型,它是 audio/mpeg,在 mimes.php 文件中。
这只发生在我还上传图片时。如果我将图像字段留空,则 mp3 可以正常上传。非常感谢任何帮助。