Как передать картинку из 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, верно? Буду пробовать.

qa-help.ru

javascript — Как передать данные из файла PHP в JS файл

Stack Overflow на русском

Loading…

  1. 0
  2. +0
    • Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
    • Справка Подробные ответы на любые возможные вопросы
    • Мета Обсудить принципы работы и политику сайта
    • О нас Узнать больше о компании Stack Overflow
    • Бизнес Узнать больше о поиске разработчиков или рекламе на сайте
  3. Войти Регистрация
  4. текущее сообщество

    • Stack Overflow на русском справка чат

ru.stackoverflow.com

Как передать переменные и данные из PHP в JavaScript? — javascript

Есть несколько подходов для этого. Некоторые требуют больше накладных расходов, чем другие, а некоторые считаются лучше других.

Без определенного порядка:

  1. Используйте AJAX для получения необходимых данных с сервера.
  2. Отправьте данные на страницу и используйте JavaScript для получения информации из DOM.
  3. Вывод данных напрямую в JavaScript.

В этом посте мы рассмотрим каждый из перечисленных выше методов и рассмотрим плюсы и минусы каждого из них, а также способы их реализации.

Этот метод считается лучшим, потому что ваши сценарии на стороне сервера и на стороне клиента полностью отделены.

Доводы

  • Лучшее разделение между слоями — если завтра вы перестанете использовать PHP и захотите перейти на сервлет, REST API или какой-либо другой сервис, вам не придется менять большую часть кода JavaScript.
  • Более читаемый — JavaScript — это JavaScript, PHP — это PHP. Не смешивая их, вы получите более читаемый код на обоих языках.
  • Позволяет асинхронную передачу данных. Получение информации из PHP может быть дорогостоящим. Иногда вы просто не хотите ждать информацию, загружать страницу и получать информацию в любое время.
  • Данные не находятся непосредственно в разметке. Это означает, что ваша разметка очищена от любых дополнительных данных, и только JavaScript ее видит.

Против

  • Задержка
    — AJAX создает HTTP-запрос, а HTTP-запросы передаются по сети и имеют сетевые задержки.
  • Состояние — данные, извлеченные с помощью отдельного HTTP-запроса, не будут содержать никакой информации из HTTP-запроса, извлекшего HTML-документ. Вам может понадобиться эта информация (например, если документ HTML генерируется в ответ на отправку формы), и, если вы это сделаете, придется каким-то образом передавать ее. Если вы исключили возможность встраивания данных на страницу (которая у вас есть, если вы используете эту технику), это ограничивает вас файлами cookie/сессиями, которые могут зависеть от условий гонк

qaru.site