2014-07-11 76 views
0

我有一个输入文件来选择一些pdf,当我选择pdf后,一些文本输入打开,所以我可以给每个pdf的标题。

所以,我有这样的文字输入:

<input type="text" name="title[]" value=""/> 

然后,如果用户填写这些输入这样我验证:

if(isset($_POST['sendForm'])){ 
    foreach ($_POST['title'] as $title) { 
     if(empty($title)){ 
      echo 'Please give a title'; 
      $ok = false;  
     } 

如果用户填写每个PDF的所有冠军,我想要将我的PDF文件上传到我的文件夹并在数据库中插入有关上传的PDF文件的信息,并且我还希望保存在每个pdf的数据库标题中。

问题我的是,如果我上传两个PDF文件,并给我的第一个pdf标题“test1”和我的第二个“test2”名称,在我的数据库这两个pdfs标题保存相同的标题,这是总是我最后一个标题pdf的标题,在这种情况下是“测试”。

在这个例子中,我使用下面的代码,你知道这里有什么可能是错误的吗?

if($ok){ 

    if(!empty($_FILES['pdfs']['tmp_name'])){ 
     $pdfs = $_FILES['pdfs'];  
     $countPdf = count($_FILES['pdfs']['tmp_name']); 
     $folder = '../../uploads/pdfs_articles/';            
     for($i=0;$i<$countPdf;$i++){ 
      $ext = substr($pdfs['name'][$i],-3); 
      $pdfName = $idlast.'-'.$i.time().'.'.$ext; 
      if($pdfs['type'][$i] == 'application/pdf'){ 
       //here I want to get all values of my inputs with name title[] 
       // so I can insert on database title of each pdf 
       foreach ($_POST['title'] as $title) {     
        $pdf_title = $title; 
       } 
       $insPdf = $pdo->prepare("INSERT INTO pdfs_articles (pdf, article_id, title) VALUES (?,?,?)"); 
       $insPdf->bindParam(1,$pdfName); 
       $insPdf->bindParam(2,$idlast); 
       $insPdf->bindParam(3,$pdf_title); 
       $insPdf->execute(); 
       move_uploaded_file($pdfs['tmp_name'][$i], $path.$pdfName); 
       } 
      } 
     } 

    } 

回答

1

您正在循环显示所有标题,并将$pdf_title保留上一个值。 然后您实际上正在处理您上传的PDF文件。

摆脱循环的,只是喜欢你做你上传的文件访问$_POST['title']阵列:

$insPdf = $pdo->prepare("INSERT INTO pdfs_articles (pdf, article_id, title) VALUES (?,?,?)"); 
$insPdf->bindParam(1,$pdfName); 
$insPdf->bindParam(2,$idlast); 
$insPdf->bindParam(3,$_POST['title'][$i]); 
$insPdf->execute(); 
move_uploaded_file($pdfs['tmp_name'][$i], $path.$pdfName); 
+0

谢谢,这真的是我的代码中缺少的[$ i]增量! – OzzC

1

我认为你需要替换此:

foreach ($_POST['title'] as $title) {     
    $pdf_title = $title; 
} 

有了这个:

$pdf_title = $_POST['title'][$i]; 
相关问题