Как передать картинку из javascript в php
Здравствуйте. Есть хитрая задача, может кто-нибудь подскажет решение. На сайте отображаются различные картинки, адрес src которых не прямой, а что-то вида «index.php?img=243243». Сами изображения переключаются с помощью «встроенного в сайт» javascript. Использую подключаемые javascript в браузере Опера (кстати, есть ли такое в Firefox?). Мне нужно каким-то образом передать эту картинку в php на мой сервер (денвер) и получить от сервера ответ. Я вижу два возможных алгоритма. Первый: — узнать физический путь на диске к загруженной картинке — с помощью ajax вызвать php-скрипт и сообщить ему путь к картинке. — php отправится по указанному пути и выполнит необходимые действия, после чего ответит javascript-у об успешности операции. Второй алгоритм: — подключаемый javascript после окончания загрузки страницы насильно вызывает обновление картинки и передает её по ajax (типа потока) в php — php преобразовывает полученный поток в img, выполняет необходимые действия и отвечает javascript-у. Почему такое извращение? — потому, что без авторизации на сайте картинку не получить, а делать симуляцию авторизации на php, перемещение по страницам и т.п. я не умею. Помогите, пожалуйста, с решением такой задачи. В первом случае я не знаю, как получить физический адрес изображения на диске (если это вообще возможно). Во втором случае я не знаю, как передать «потоком» в php картинку, надо её для этого как-то конвертировать в текстовую строку и обратно. Спасибо.
3 ответа
Отправляете AJAX запрос на картинку (!), полученные данные кодируете и отправляете своему веб-серверу.На сервере раскодировать и делать с бинарными данными все, что захочется.
Парсите капчу?Используйте <canvas>
и метод .drawImage()
, чтобы скопировать изображение в <canvas>
, а далее — метод .toDataURL()
.Вы получите в переменной закодированную в base64 png’шку, которая является точной копией исходного изображения, и делайте с ней что хотите.
subzey, все верно, капча. То есть её можно будет передать в php из полученной переменной в js, верно? Буду пробовать.
javascript — Как передать данные из файла PHP в JS файл
Stack Overflow на русскомLoading…
- 0
- +0
- Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
- Справка Подробные ответы на любые возможные вопросы
- О нас Узнать больше о компании Stack Overflow
- Бизнес Узнать больше о поиске разработчиков или рекламе на сайте
- Войти Регистрация
-
текущее сообщество
- Stack Overflow на русском справка чат
ru.stackoverflow.com
Как передать переменные и данные из PHP в JavaScript? — javascript
Есть несколько подходов для этого. Некоторые требуют больше накладных расходов, чем другие, а некоторые считаются лучше других.
Без определенного порядка:
- Используйте AJAX для получения необходимых данных с сервера.
- Отправьте данные на страницу и используйте JavaScript для получения информации из DOM.
- Вывод данных напрямую в JavaScript.
В этом посте мы рассмотрим каждый из перечисленных выше методов и рассмотрим плюсы и минусы каждого из них, а также способы их реализации.
Этот метод считается лучшим, потому что ваши сценарии на стороне сервера и на стороне клиента полностью отделены.
Доводы
- Лучшее разделение между слоями — если завтра вы перестанете использовать PHP и захотите перейти на сервлет, REST API или какой-либо другой сервис, вам не придется менять большую часть кода JavaScript.
- Более читаемый — JavaScript — это JavaScript, PHP — это PHP. Не смешивая их, вы получите более читаемый код на обоих языках.
- Позволяет асинхронную передачу данных. Получение информации из PHP может быть дорогостоящим. Иногда вы просто не хотите ждать информацию, загружать страницу и получать информацию в любое время.
- Данные не находятся непосредственно в разметке. Это означает, что ваша разметка очищена от любых дополнительных данных, и только JavaScript ее видит.
Против
- Состояние — данные, извлеченные с помощью отдельного HTTP-запроса, не будут содержать никакой информации из HTTP-запроса, извлекшего HTML-документ. Вам может понадобиться эта информация (например, если документ HTML генерируется в ответ на отправку формы), и, если вы это сделаете, придется каким-то образом передавать ее. Если вы исключили возможность встраивания данных на страницу (которая у вас есть, если вы используете эту технику), это ограничивает вас файлами cookie/сессиями, которые могут зависеть от условий гонк