Как указать папку загрузки, не зная имени файла?

Я хочу использовать php или xmlwebrequest для загрузки файла на сервер и получения другого файла с сервера после завершения загрузки. У меня есть простой сценарий HTML-формы, чтобы пользователь мог выбрать файл для загрузки, и у меня есть еще одна кнопка, позволяющая пользователю выбрать папку для загрузки, чтобы разместить новый файл, полученный с сервера.

Созданная мною форма позволяет пользователю переходить к папке загрузки, но ему нужно, чтобы имя файла было выбрано в локальной папке; это загрузка, поэтому файл не будет файлом на клиентском компьютере, он поступает с сервера.

Вот HTML-код:

<div class = "h1_inf"><b>Upload/Download File</b></div><br><br>

<div class = "z_01">

<form action = "upload.php" method = "post" enctype = "multipart/form-data">
    Select image to upload:
    <input type = "file" name = "fileToUpload" id = "fileToUpload"><br><br>
    <input type = "submit" value = "Upload File" name = "submit">
</form><br>

<form action = "dnload.php" method = "get">
    Select image to dnload:
    <input type = "file" name = "fileToDnload" id = "fileToDnload"><br><br>
</form>

</div>

Вопрос: как выбрать каталог для загрузки файла, который будет получен с сервера. Я открыт для использования php или xmlwebrequest, но элементы формы - это чистый html.

Я знаю, что есть много сообщений по этой проблеме, и некоторые говорят, что это невозможно сделать из-за безопасности браузера, но должен быть какой-то способ позволить пользователю решить, где загрузить файл с сервера?

Это не работает так, если вы хотите показать изображения для загрузки, вам нужно циклически перебрать место, где вы также сохраняете изображения, а затем вывести их на страницу со ссылкой для их загрузки.

Jaquarh 19.10.2018 20:04

Вы имеете в виду отображать имена изображений (имен файлов), находящихся на сервере? Вы можете показать пример? Большое спасибо за ваш вклад.

RTC222 19.10.2018 20:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать glob() для циклического просмотра каталогов и получения всех расширений.

function searchFiles($path, $extension) {
    $files = [];
    foreach(glob("{$path}/*.{$extension}"), GLOB_BRACE) as $file) {
        $files[] = array('name' => $file, 'size' => filesize($file));
    }
}

Затем вы можете просмотреть все изображения png и вывести их для загрузки:

<?php foreach(searchFiles('/images', 'png') as $image): ?>
    <a download href='/images/<?= $image['name']; ?>.png' alt='<?= $image['size']; ?>'> Download <?= $image['name']; ?> </a>
<?php endforeach; ?>

Выполняется ли php на сервере? Я имею в виду, что имена файлов, которые вы показываете, находятся на сервере, а не на клиентском компьютере? Их еще не было бы на клиентском компьютере, поэтому они должны быть на сервере. Правда?

RTC222 19.10.2018 20:18

Да PHP выполняется на сервере

Jaquarh 19.10.2018 20:27

Большое спасибо за ваше разъяснение. Вы направили меня на правильный путь. Спасибо еще раз.

RTC222 19.10.2018 20:28

Другие вопросы по теме