0

PDF ファイルをサーバー上のフォルダーに保存する際に問題があります。コードは一度は機能しましたが、現在は機能していません。私がやりたいことは、フォームが送信されたときに誰かが PDF をアップロードしようとしているかどうかを確認し、ファイル フィールドに PDF がある場合はそれをアップロードしてから、mysql データベースへのパスを保存することです。コードは以下のとおりです。

    if (!empty($_FILES['pdf'])){
          $idir = "../files/PDF/"; //my directory file is supposed to be saved in
          $randomd=rand(0000000,9999999); //creates a random number as filename
          $domain = "http://".$_SERVER['HTTP_HOST'];  
          $file_ext = strrchr($_FILES['pdf']['name'], '.'); grabs file extension. my code checked if the file was a pdf a different way and neither seems to work.
          $destination=$randomd.$file_ext; //new filename
          if ($file_ext=='pdf') {
                move_uploaded_file($_FILES['pdf']['tmp_name'], "$idir" . $destination);
                $pdf= $domain."/files/PDF/".$destination;                                             } else { echo("File type not supported.");  
mysql_query("UPDATE tbl_listings SET pdf='$pdf' WHERE listing_id='$lid'");
                                                                            }

空でない場合は機能せず、常にファイルをアップロードしようとしますが、フォルダーを確認してもそこには何もなく、mysql が更新されません。

4

1 に答える 1

1

$_FILES['pdf']空になることはありません (フォームが送信されたとき)。ファイルが選択されているかどうかに関係なく、常に配列を返します。

にチェックを入れると、ファイルがアップロードされていない場合に$_FILES['pdf']['error']なります。4

于 2012-05-25T05:30:39.000 に答える