PHP загружает только один файл, когда мне нужно много - PullRequest
0 голосов
/ 24 февраля 2019

Мне нужно запустить этот код, применяя к каждому загруженному файлу:

$uploads_dir = 'tdump';
    $tmp_name = $_FILES['upfiles']["tmp_name"];
    $name = basename($_FILES['upfiles']["name"]);
    move_uploaded_file($tmp_name, "$uploads_dir/$name");
    $filename="$uploads_dir/$name";
    echo "$filename";
    $mp3file=new CMP3File;
    $mp3file->getid3($filename);
    echo "Title: $mp3file->title<br>\n";
    echo "Artist: $mp3file->artist<br>\n";
    echo "Album: $mp3file->album<br>\n";
    echo "Year: $mp3file->year<br>\n";
    echo "Comment: $mp3file->comment<br>\n";
    echo "Genre: " . Ord($mp3file->genre) . "<br>\n";

Я пробовал это сделать до сих пор:

$total = count($_FILES['upfiles']['name']);
print_r($total);
for ($i=0; $i < $total; $i++){
    $uploads_dir = 'tdump';
    $tmp_name = $_FILES['upfiles']["tmp_name"];
    $name = basename($_FILES['upfiles']["name"]);
    move_uploaded_file($tmp_name, "$uploads_dir/$name");
    $filename="$uploads_dir/$name";
    echo "$filename";
    $mp3file=new CMP3File;
    $mp3file->getid3($filename);
    echo "Title: $mp3file->title<br>\n";
    echo "Artist: $mp3file->artist<br>\n";
    echo "Album: $mp3file->album<br>\n";
    echo "Year: $mp3file->year<br>\n";
    echo "Comment: $mp3file->comment<br>\n";
    echo "Genre: " . Ord($mp3file->genre) . "<br>\n";
}

html-код:

<form method="post">
    <input name="upfiles[]" type="file" multiple/>
    <input type="submit" name="send">
</form>

Переменная mp3file - это библиотека getid3, не зацикливайтесь на ней.В этой куче кода я не могу понять, как перебрать каждый загруженный файл, получить его имя и сохранить его.Я думаю, что это должен быть цикл for foreach.

Ответы [ 3 ]

0 голосов
/ 24 февраля 2019

Пример HTML:

    <input type="file" name="filename[]">
    <input type="file" name="filename[]">
    ....
    <input type="file" name="filename[]">

Попробуйте сделать так, вместо «имени файла» используйте ваш.

Пример PHP:

  if ($_FILES){
        for ($i = 0; $i < count($_FILES['filename']['name']); $i++) {

            //......
            $tmp_name = $_FILES['filename']["tmp_name"][$i];
            //......

        }
    }
0 голосов
/ 24 февраля 2019

в вашей части формы отредактируйте следующий атрибут

<input name="userfile[]" type="file" />

этот массив пользовательских файлов будет хранить весь ваш файл в массиве.

, затем используйте функцию count() для отображения количества элементов.

например

$no_of_files=count($_FILES['userfile']['tmp_name']);
0 голосов
/ 24 февраля 2019
for($i=0; $i<your_no_of_files; $i++)
{
    $tmp_name = $file["tmp_name"];
$name = basename($file["name"]).$i;
move_uploaded_file($tmp_name, "$uploads_dir/$name");
$filename="$uploads_dir/$name";
echo "$filename";
$mp3file=new CMP3File;
$mp3file->getid3($filename);
echo "Title: $mp3file->title<br>\n";
echo "Artist: $mp3file->artist<br>\n";
echo "Album: $mp3file->album<br>\n";
echo "Year: $mp3file->year<br>\n";
echo "Comment: $mp3file->comment<br>\n";
echo "Genre: " . Ord($mp3file->genre) . "<br>\n";
}**MAYBE THIS WILL WORK**
...