2017-05-27 11 views
0

私はphpファイルで作業しており、入力[type = files]を使って一度にいくつかの画像をアップロードしようとしています。問題は、phpメソッドmkdir()によってダイナミックに作成されたフォルダに画像の束をアップロードしていることです。各提出時に、同じ名前の「ファイル」を数字で増分して新しいフォルダを作成したい。たとえば、最初にフォームを送信すると、ファイル名は.../file1となり、2番目の送信では.../file2となります。私が今までに書いたコードは正常に動作していますが、値は動的にインクリメントされず、ディレクトリが既に存在するというエラーが表示されます。以下は私のコードです。コードをチェックすると、ディレクトリフォルダは(files/file。$ a)$ a = 1となります。 $ a ++として最後の行でインクリメントされます。それでも、それは単に最初の提出及び第二の提出など、それぞれそれが何を持っているので、あなたのPHPスクリプトは、オーバー開始されていないアップロードして..php複数のファイルを動的に作成されたディレクトリにアップロード

if (isset($_POST["upl-submit"])) { 
 

 
    $a = 1; 
 
    $makeFolder = "files/file".$a; //Files Inside Directory 
 
    mkdir($makeFolder); 
 
    //Save The images in the folder 
 
    if (isset($_FILES["prImgs"])) { 
 

 
    $imgName = $_FILES["prImgs"]["name"]; 
 
    $imgType = $_FILES["prImgs"]["type"]; 
 
    $imgSize = $_FILES["prImgs"]["size"]; 
 
    $imgTemp = $_FILES["prImgs"]["tmp_name"]; 
 
    $imgErr = $_FILES["prImgs"]["error"]; 
 
    $pathsArr = array(); 
 
    $all_ext = array("jpg", "jpeg", "png", "bmp"); 
 

 

 
    for ($i = 0; $i < count($imgName); $i++) { 
 
     $ext = explode(".", $imgName[$i]); //To get the extensions of all files 
 
     if (in_array(end($ext), $all_ext)) { //To check if the extensions meet the allowed ones or not 
 
     $newName = "img".($i + 1). 
 
     ".".end($ext); //New name selected 
 
     $totPath = $makeFolder. 
 
     "/".$newName; 
 
     $pathsArr[]. = $totPath; 
 
     if (move_uploaded_file($imgTemp[$i], $totPath)) { 
 
      echo "<script>console.log('Uploaded');</script>"; 
 
     } else { 
 
      echo "<script>console.log('File Uploading Error');</script>"; 
 
     } 
 
     } else { 
 
     echo "<script> alert('Unaccepted Format'); </script>"; 
 
     } 
 
    } 
 
    } 
 

 
    //Save the pdf in the same folder 
 
    if (isset($_FILES["prPdf"])) { 
 
    $pdfName = $_FILES["prPdf"]["name"]; 
 
    $pdfType = $_FILES["prPdf"]["type"]; 
 
    $pdfSize = $_FILES["prPdf"]["size"]; 
 
    $pdfTemp = $_FILES["prPdf"]["tmp_name"]; 
 
    $pdfErr = $_FILES["prPdf"]["error"]; 
 
    $pdfPath; 
 
    $pdf_ext = "pdf"; 
 

 

 
    $pdfExt = explode(".", $pdfName); //To get the extension of the pdf file 
 
    if (end($pdfExt) == $pdf_ext) { 
 
     $pdfNew = "pdfFile". 
 
     ".".end($pdfExt); //New name selected 
 
     $totPdfPath = $makeFolder. 
 
     "/".$pdfNew; 
 
     $pdfPath = $totPdfPath; 
 

 
     if (move_uploaded_file($pdfTemp, $totPdfPath)) { 
 
     echo "<script>console.log('pdf Uploaded');</script>"; 
 
     } else { 
 
     echo "<script>console.log('pdf Uploading Error');</script>"; 
 
     } 
 
    } else { 
 
     echo "<script> alert('Unaccepted Format'); </script>"; 
 
    } 
 

 
    } 
 

 
    $a++; 
 

 
}

答えて

0

に増加しません上のフォルダを作ります$ aのメモリは1で始まり、再び1で始まります。だから、あなたは$ makeFolderの存在を確認し、結果の名前が存在しなくなるまで必要に応じて$ aを増やすことができます。または、$ aの最後の値をファイルまたはデータベースに格納する必要があります。

+1

ありがとう、PHPのクッキーは私のために働いた:) –

関連する問題