Как сделать, чтобы форма понимала, когда я хочу загрузить картинку с компьютера и когда с удалённого URL?

Доброе время суток,

Описание задачи: есть форма в которое вставлено поле для загрузки файлов. При просмотре в браузере форма приобретает вид текстового поля с кнопкой Browse на борту. Это стандартный набор. Сама задача состоит в том что это текстовое поле хочу использоваться как для загрузки картинок с компьютера так и с URL. Т.е. если я хочу загрузить картинку с URL, то просто пропишу полный путь картинки в это же поле.

Как сделать чтобы форма понимала когда я хочу загрузить картинку с компьютера и когда с удалённого URL?

Спасибо за ответы!
  • Вопрос задан
  • 2794 просмотра
Пригласить эксперта
Ответы на вопрос 6
Caravus
@Caravus
DevOps
Кнопка-переключатель + скрытые поля + JS-магия
Ответ написан
Комментировать
@bsboris
В Хроме и Сафари форма загрузки файлов не имеет текстового поля, например, только кнопка «Browse».
Наверное, надо самому сделать текстовый инпут и кнопку, поле file сделать скрытым и эмулировать нужные события через JS. А на стороне сервера уже разбирать какое поле заполнено и как грузить файл.
Ответ написан
Комментировать
NemeZZiZZ
@NemeZZiZZ
Нужно сделать два разных поля: одно будет [input name='file' type='file'], второе [input name='url' type='text']. С помощью CSS Вы сможете из совместить в одно. При получении данных обработчиком в $_FILES будет информация по отправленному файлу, а в $_POST — по URL этого файла.
Ответ написан
@Hint
Вы ведь понимаете, что изменить форму визуально будет недостаточно? Вам придется дописывать скрипт на сервере, принимающий файлы.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Что вам мешает отличить ссылку от локального пути в js?
test.org/picture.jpg
c://mydirectory/picture.jpg
Сказать честно я наверно не понял до конца вопроса.
Ответ написан
Комментировать
Nikitian
@Nikitian
Урл можно вставить и в форму выбора файла в поле имени файла.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы