Мне нужно загрузить несколько файлов, я использую materializecss, и это дает вам возможность загружать несколько файлов в один вход:
<div class="row">
<form class="col s12">
<div class="file-field input-field">
<div class="btn">
<span>Browse</span>
<input type="file" multiple>
</div>
<div class="file-path-wrapper">
<input type="text" name="pictures" class="file-path validate" type="text" placeholder="Upload multiple files">
</div>
</div>
</form>
</div>
materialize.js делает следующее с этим:
$(document).on('change', '.file-field input[type="file"]', function () {
var file_field = $(this).closest('.file-field');
var path_input = file_field.find('input.file-path');
var files = $(this)[0].files;
var file_names = [];
for (var i = 0; i < files.length; i++) {
file_names.push(files[i].name);
}
path_input.val(file_names.join(", "));
path_input.trigger('change');
});
Итак, по $_POST
Я могу получить только имена файлов, которые хочу загрузить. Мне нужен полный путь к файлам, чтобы загрузить их на мой сервер.
Я буду признателен за любую помощь.
Вы не можете получить эти пути; это нарушит конфиденциальность пользователя.
Спецификация File API говорит, что о name
атрибут (акцент мой):
Название файла; при получении, это должно вернуть имя файла в виде строки. Существует множество вариантов имен и соглашений, используемых различными файловыми системами ОС; это просто имя файла без информации о пути.
Других решений пока нет …