0

私が知りたいのは、アップロードボタンで選択したときに、ディレクトリ内のすべてのファイル名のリスト[具体的には配列]を取得する方法です。その後、その配列のファイルをデータベースにアップロードします。1つのファイルとして1つのエントリとして。では、どうすればよいですか?ファイル名だけが必要で、実際のファイルだけでなく、これらの名前をアップロードする必要があることを忘れないでください。

4

4 に答える 4

1

ftpを使用している場合、この関数は配列内のディレクトリのすべてのファイル名を返します。

function ftp_searchdir($conn_id, $dir) {
    if(!@ftp_is_dir($conn_id, $dir)) {
        die('No such directory on the ftp-server');
    }
    if(strrchr($dir, '/') != '/') {
        $dir = $dir.'/';
    }

    $dirlist[0] = $dir;
    $list = ftp_nlist($conn_id, $dir);
    foreach($list as $path) {
        $path = './'.$path;
        if($path != $dir.'.' && $path != $dir.'..') {
            if(ftp_is_dir($conn_id, $path)) {
                $temp = ftp_searchdir($conn_id, ($path), 1);
                $dirlist = array_merge($dirlist, $temp);
            }
            else {
                $dirlist[] = $path;
            }
        }

    }

    ftp_chdir($conn_id, '/../');

    return $dirlist;

}
于 2012-07-11T18:32:08.070 に答える
1

サーバー上のファイルはありますか?ボタンをホッピングしてブラウザをクリックし、エンドユーザーのフォルダを開くと、これは機能しません。ほとんどのブラウザでは、単一のファイルしか選択できません

于 2012-07-11T18:34:02.770 に答える
1
 <?
    if (isset($_POST[submit])) {
    $uploadArray= array();
    $uploadArray[] = $_POST['uploadedfile'];
    $uploadArray[] = $_POST['uploadedfile2'];
    $uploadArray[] = $_POST['uploadedfile3'];
    foreach($uploadArray as $file) {
    $target_path = "upload/";
    $target_path = $target_path . basename( $_FILES['$file']['name']);
    if(move_uploaded_file($_FILES['$file']['tmp_name'], $target_path)) {
    echo "The file ". basename( $_FILES['$file']['name']).
    " has been uploaded";
    } else{
    echo "There was an error uploading the file, please try again!";
    }
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Untitled Document</title>
    </head>
    <body>
    <form enctype="multipart/form-data" action="upload-simple.php" method="POST">
    <p>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload:
    <input name="uploadedfile" type="file" />
    </p>
    <p>Choose a file to upload:
    <input name="uploadedfile2" type="file" />
    </p>
    <p>Choose a file to upload:
    <input name="uploadedfile3" type="file" />
    <input name="submit" type="submit" id="submit" value="submit" />
    </p>
    </form>
    </body>
    </html>

これはあなたの問題を解決するかもしれません

于 2012-07-11T18:37:22.077 に答える
0

ファイルがサーバー上にすでに存在する場合は、使用できますglob

$files = glob('*.ext'); // or *.* for all files
foreach($files AS $file){
    // $file is the name of the file
}
于 2012-07-11T18:30:37.147 に答える