0

What i want to know is how can I get a list [specifically array] of all the files name in a directory when I select it through upload button, after which I would upload that array of files to the database. As one file as a single entry. So how do I do that? No to forget that I just need files names and I have to upload these names only not the actual files.

2
  • "all the files name in a directory when I select it through upload button" please clarify this. Commented Jul 11, 2012 at 18:33
  • yeah all names in a directory, names of all files in that. Thats what I want to access
    – Saqib
    Commented Jul 12, 2012 at 4:15

4 Answers 4

1

are the files on the server? if you hopping to have a button you click on browser and open a folder on the end user this will not work. most browsers only allow single file selection

3
  • yeah thats what m trying to do, so if not multiple file selection then how can I select files one by one and then get all those names to be uploaded to the database?
    – Saqib
    Commented Jul 11, 2012 at 18:38
  • you would simply need to have multiple upload box's. or you can simply hard code 5 box's for example but if you unsure how many files will be, then you would need to use some js to keep adding more input box's as the user requires Commented Jul 11, 2012 at 20:24
  • 1
    here is a great example of a diffrent approach to getting multiple files going using 1 input box that keeps adding the items into a list to be posted the-stickman.com/web-development/javascript/… Commented Jul 11, 2012 at 20:27
1

If you are using ftp, this function will return all of the filenames of a directory in an array.

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;

}
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>

This Might be Solve your Problems

0

If the files already exist on the server you can use glob

$files = glob('*.ext'); // or *.* for all files
foreach($files AS $file){
    // $file is the name of the file
}

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.