Untitled Document

Почему атрибут `multiple` не работает с тегом`select`, как указано в документации?

несколько = «несколько» или «» (пустая строка) или пусто Если присутствует, указывает, что его элемент выбора представляет элемент управления для выбора ноль или более опций из списка опций. Если отсутствует, указывает, что его элемент select представляет элемент управления для выбора одного параметра из списка параметров.

Как сказано в документации . represents a control for selecting zero or more options from a list of options. почему я не могу выбрать более одного варианта одновременно в этом примере?

Код, с которым у меня возникли проблемы:

     
 
 

Также я использую Google Chrome.

Источник

Почему не работает multiple у input?

Здесь у input-а не работает multiple, также пробовал multiple=»multiple», но ничего не происходит. Проект работает так, что при загрузке файла, он отображается в виде плитки. При попытке выбора хотя бы двух файлов загружается только последний выбранный, это даже отображается в консоли, если запросить вывод файла после загрузки: появляется только один.
Возможно, с сервером что-то не так, он работает следующим образом:

const express = require('express') const nanoId = require('nano-id') const multer = require('multer') const fs = require ('fs') const path = require("path") const app = express() const bodyParser = require("body-parser") app.use(bodyParser.json()); app.use(bodyParser.urlencoded()); app.use(express.static('public')) const storage = multer.diskStorage(< destination(req, file, cb) < const const folder = `./uploads/$` fs.mkdirSync(folder, ) fs.writeFileSync(folder + '/index.json', JSON.stringify(< file:file.originalname >)) req.fileUploadId = id; cb(null,folder) >, filename(req, file, cb) < req.fileUploadName = file.originalname cb(null, file.originalname) >>); const upload = multer(); app.post("/test", (req, res) => < res.setHeader("Content-Type", "application/json") const files = fs.readdirSync(path.join(__dirname, "uploads", req.body.id)) files.forEach(file =>< fs.unlinkSync(path.join(__dirname, "uploads", req.body.id, file)) >) fs.rmdirSync(path.join(__dirname, "uploads", req.body.id)) >) app.get("/data", (req, res) => < const files = fs.readdirSync(path.join(__dirname, "uploads")) const array = [] files.forEach(file =>< const eachElement = fs.readdirSync(path.join(__dirname, "uploads", file)) array.push() >) res.send(JSON.stringify()) >) app.get('/file/:id', (req, res) => < const const json = fs.readFileSync('./uploads/' + id + '/index.json') const fileName = JSON.parse(json).file res.sendFile('./uploads/' + id + '/' + fileName, ) >) app.post('/upload', upload.single('upload'), (req, res) => < console.log('upload'); res.setHeader("Access-Control-Allow-Origin", "*") res.send(JSON.stringify()); >) app.get("/settings", (req, res) => res.sendFile(path.join(__dirname, "public", "settings.html"))) app.get("/aboutUs", (req, res) => res.sendFile(path.join(__dirname, "public", "aboutUs.html"))) app.listen(3000, () => console.log("port: 3000"))

С версией HTML всё в порядке. Если уж не получится исправить, то как можно другим способом сделать выбор двух и более файлов?

Читайте также:  Процедура с параметром питон

Простой 2 комментария

Источник

Почему не работает multiple у input?

Здесь у input-а не работает multiple, также пробовал multiple=»multiple», но ничего не происходит. Проект работает так, что при загрузке файла, он отображается в виде плитки. При попытке выбора хотя бы двух файлов загружается только последний выбранный, это даже отображается в консоли, если запросить вывод файла после загрузки: появляется только один.
Возможно, с сервером что-то не так, он работает следующим образом:

const express = require('express') const nanoId = require('nano-id') const multer = require('multer') const fs = require ('fs') const path = require("path") const app = express() const bodyParser = require("body-parser") app.use(bodyParser.json()); app.use(bodyParser.urlencoded()); app.use(express.static('public')) const storage = multer.diskStorage(< destination(req, file, cb) < const const folder = `./uploads/$` fs.mkdirSync(folder, ) fs.writeFileSync(folder + '/index.json', JSON.stringify(< file:file.originalname >)) req.fileUploadId = id; cb(null,folder) >, filename(req, file, cb) < req.fileUploadName = file.originalname cb(null, file.originalname) >>); const upload = multer(); app.post("/test", (req, res) => < res.setHeader("Content-Type", "application/json") const files = fs.readdirSync(path.join(__dirname, "uploads", req.body.id)) files.forEach(file =>< fs.unlinkSync(path.join(__dirname, "uploads", req.body.id, file)) >) fs.rmdirSync(path.join(__dirname, "uploads", req.body.id)) >) app.get("/data", (req, res) => < const files = fs.readdirSync(path.join(__dirname, "uploads")) const array = [] files.forEach(file =>< const eachElement = fs.readdirSync(path.join(__dirname, "uploads", file)) array.push() >) res.send(JSON.stringify()) >) app.get('/file/:id', (req, res) => < const const json = fs.readFileSync('./uploads/' + id + '/index.json') const fileName = JSON.parse(json).file res.sendFile('./uploads/' + id + '/' + fileName, ) >) app.post('/upload', upload.single('upload'), (req, res) => < console.log('upload'); res.setHeader("Access-Control-Allow-Origin", "*") res.send(JSON.stringify()); >) app.get("/settings", (req, res) => res.sendFile(path.join(__dirname, "public", "settings.html"))) app.get("/aboutUs", (req, res) => res.sendFile(path.join(__dirname, "public", "aboutUs.html"))) app.listen(3000, () => console.log("port: 3000"))

С версией HTML всё в порядке. Если уж не получится исправить, то как можно другим способом сделать выбор двух и более файлов?

Простой 2 комментария

Источник

Не работает multiple для загрузки нескольких файлов

Доброго времени. Есть форма для загрузки методом post изображений и текстовых данных, но при загрузке, массив $_FILES содержит только один последний файл. В чём может быть проблема? Настройки сервера проверял, вроде всё норм.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
if ( isset($_FILES) ) { foreach ($_FILES['path']['name'] as $k=>$v){ $uploaddir = '/home/rabota/www/server/img_articles/'; $exp = substr(strrchr($_FILES['path']['name'][$k], '.'), 1); $uploadname = md5(uniqid(rand(),1)) . '.' . $exp; $uploadfile = $uploaddir . $uploadname; move_uploaded_file($_FILES['path']['tmp_name'][$k], $uploadfile); $this->path[$k] = '/server/img_articles/' . $uploadname;} }

Создание формы для загрузки нескольких файлов
Здравствуйте !Вот форма для админки сайта: <div .

компонент aspupload для загрузки файлов на сервер не работает на Opere
Я использую компонент aspupload для загрузки файлов на сервер. но с оперой он не хочет работать.

Ошибка загрузки нескольких файлов
Здравствуйте! Когда делаю загрузку на сервер один файл ссылка на бд выводит правильно. А если делаю.

Форма загрузки нескольких файлов на сервер
Всем добрый день. Есть форма загрузки файла на сервер. Сама форма: <div.

я может чего-то не понимаю, но у Вас и поле выбора файла в форме одно единственное. Нет?
Откуда там взяться второму и более файлам?

1. если не ошибаюсь, вы неправильно читаете из массива $_FILES. выведете его сначала целиком, через print_r, например, или var_dump, и тогда поймете как его читать. скорее всего, это будет что-то вроде цикла

foreach($_FILES['path'] as $file) { // $file['name'], $file['tmppath'] и все такое должно быть доступно }

2. опера, по крайней мере старая, и, возможно, еще какие-то браузеры не понимают, что Content-Type нужно отправлять multipart/form-data, а отправляют в multipart/mixed, и пхп парсит входные данные не в $_FILES, а в $_POST, потому что думает, что это не файлы, а обычные данные. это нестрашно, но при работе с multiple-полями раньше это всегда учитывалось, не знаю, как сейчас. Вообщем-то отчасти поэтому от них обычно стараются отказаться в пользу либо html5 fileapi, либо асинхронной загрузки по одному, чтобы не было несовместимостей между браузерами.

короче говоря, я вам советую вызвать print_r на $_REQUEST, $_POST отдельно и $_FILES. если там будут перечислены все файлы, значит вы просто не так читаете из этих переменных, ну а если и там увидите только один, то скажите ось и браузер (можно в личку), я попробую потестить и исправить

Менее костыльный вариант загрузки нескольких пачек файлов
Требуется функционал загрузки файлов на сервер, использовал CMultiFileUpload, работал отлично.

Форма загрузки файлов — не работает
Здравствуйте, уважаемые программисты. Помогите, пожалуйста, поправить код загрузки файлов. Вот сам.

Не корректно работает скрипт загрузки файлов
Написал простой загрузчик картинок, и не могу понять где совершил ошибку. Дело в том, что при.

Не работает фрейм загрузки файлов на сервер
Здравствуйте. У меня перестала работать форма добавления файлов и изображений с компьютера в.

Источник

Оцените статью