0

PHP と HTML を使用して、任意の数のファイルをアップロードできるアップロード スクリプトを作成しています。任意の数のファイル アップロードをループしてエコーし、ループを使用してそれぞれに「fileField1」、「fileField2」などの名前を付けます。

今、そのフィールドのファイルの名前を取得したいと思います。このような別のループで変数を使用できますか?

  $fileField = 'fileField'.$i;

    $fileName = $_FILES[$fileField]['name']; // Name of file 

これはループ内に含まれていますが、これは機能しますか?

エラーが発生していると思います...

変数 $i は毎回 1 ずつ増加します ($i++)

編集

私が届かないというコメントに注意してください...

ループ全体は次のとおりです。

$i = 1;
while ($i <= $numberOfFields) {
$fileField = 'fileField'.$i;
$titleId = 'title'.$i;
$genreId = 'genre'.$i;

    $fileName = $_FILES[$fileField]['name']; // Name of file 

    if($fileName !=""){
        $randNum = rand(1000000000,9999999999); //Generate random number

        $newFileName = $fileName."-".$randNum; //Rename file

            if (file_exists($baseUrl."images/".$newFileName)){
            echo $newFileName." already exists. ";
            }else{      
                if(isset($_POST[$titleId]) && !empty($_POST[$titleId])){
                    // Assign url, title, genre
                    $url = 'images/'.$newFileName;          
                    $title = $_POST[$titleId];          
                    $genre = $_POST[$genreId]; 
                    // Execute final query and upload
                    $sql = "INSERT INTO images (url,title,genre) VALUES (:url,:title,:genre)";
                    $q = $conn->prepare($sql);
                    $q->execute(array(':url'=>$url,
                                      ':title'=>$title,
                                      ':genre'=>$genre));       
                    if(copy($_FILES['fileField']['tmp_name'],'../images/'.$newFileName)) {
                        $NOTICE = 'File successfully uploaded!';
                        // I AM NEVER REACHING THIS NOTICE WHICH IS ECHOED LATER ON IN THE CODE
                    }
                }else{
                    $NOTICE = "Please fill out the title for picture ".$i;
                    break;                  
                }
            }
    }else{
        $NOTICE = "Please select a file to upload in slot ".$i;
        break;
    }
    $i++;
    }
4

2 に答える 2

1
if(copy($_FILES['fileField']['tmp_name'],'../images/'.$newFileName)) {

私はそうあるべきだと信じています:

if(move_uploaded_file($_FILES['fileField']['tmp_name'],'../images/'.$newFileName)) {

はい、そのように[]に変数を入れることができます。それらが有効であり、未定義のオフセットエラーが発生しない限り。

于 2012-12-07T23:23:46.847 に答える
1

使用しないでくださいcopymove_uploaded_fileアップロードされたファイルで何かをする前に、まず使用してください。ファイルは特別な一時的な場所にアップロードされます。

于 2012-12-07T23:23:57.557 に答える