2015-11-02 77 views
1

我有一个注册表格,用户应该上传他们的照片和其他文件(例如doc-b,doc-b等)。如何将多个文件名保存到数据库?

在我的形式

我有类似

<input type="file" name="doc-a" id="doc-a"> 
<input type="file" name="doc-b" id="doc-b"> 

“名称”标签标明它是什么类型的文件,它是一个文档A,文档B,他的照片或等

在他的个人资料页面中,我想链接每个单独的文件。例如链接到doc-b。

所以我想到的是在DB中创建一个表来保存每个文件名和它们的类型(表单名称标签)。 但我不知道我怎么能做到这一点

这里提交表单,数据保存到数据库和上传文件的代码:

$this->member->register($this->input->post(NULL, TRUE)); 
$this->upload->do_upload('photo'); 
$this->upload->do_upload('doc-a'); 
$this->upload->do_upload('doc-b'); 

,然后我想要做的是循环每个文件(我不知道我该怎么做)

$member_id = $this->db->insert_id(); 
foreach ($_FILES as $member_files) { 

if ($_FILES[] == 'photo') { 
$file_type = 'photo'; 
}elseif ($_FILES['doc-a']) { 
$file_type = 'doc-a'; 


$data = array(
'id_member' => $member_id, 
'file_type' => $, // this should be the **name** tag 
'file_name' => $, // this should be the file name 
); 

$this->db->insert('member_files', $data); 
} 

无论如何,让我知道你是否有更好的方式来做到这一点。 感谢

+0

阅读本教程http://w3code.in/2015/09/upload-file-using-codeigniter/ – Ricky

+0

感谢@Ricky,但是这并不能解决我的问题。我已经把文件打碎了。但我需要知道哪个文件是哪个(预定义如:photo,doc-a,doc-b等) – taek

+0

您只想获取扩展名并将其保存到数据库? –

回答

0

要检查文件的扩展名使用此代码

foreach($files as $file){ 

        $name = $file->filename; 
        $info = new SplFileInfo($name); 
        $extension = $info->getExtension(); 
    } 
if($extension == "jpg" || $extension == "png" || $extension == "gif" || $extension == "jpeg") { 
show your image 
}else{ 
show other doc file 
     } 
相关问题