Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Какие есть решения для вытягивания изображений с Интернета по url? (https://javascript.ru/forum/misc/58150-kakie-est-resheniya-dlya-vytyagivaniya-izobrazhenijj-s-interneta-po-url.html)

Валерий1996 07.09.2015 17:15

Как качать изображения с других ресуров на клиенте?
 
Скачка изображений с интернета на клиенте

Lemme 07.09.2015 17:54

дальнейшего сохранения на клиенте

Можно в localStorage, sessionStorage.

Загружаешь через canvas, преобразовываешь в base64 https://developer.mozilla.org/en-US/...ment/toDataURL
Записываешь в хранилище.

Цитата:

где не будь в папке ?
Если только клиент нажмет "сохранить" =), тогда без канваса =)

KupueIIIKo 07.09.2015 18:32

Не поверишь я щас как раз сижу над сохранением изображения base64 по клику на кнопку) как я понял кроссбраузерного решения точно)
У меня jquery есть с пачкой библиотек работает, но щас проверил на android не помогает(
$('.div_img a').on('click', function(e) {
	$.getScript( "<?=URL::base()?>js/base64.min.js", function( data, textStatus, jqxhr ){
		$.getScript( "<?=URL::base()?>js/Blob.js", function( data, textStatus, jqxhr ){
			$.getScript( "<?=URL::base()?>js/FileSaver.min.js", function( data, textStatus, jqxhr ){
				saveAs(base64toBlob(), 'xPassword.jpeg');
			});
		});
	});
});

KupueIIIKo 07.09.2015 18:34

Цитата:

Сообщение от Lemme (Сообщение 387434)
дальнейшего сохранения на клиенте

Можно в localStorage, sessionStorage.

Загружаешь через canvas, преобразовываешь в base64 https://developer.mozilla.org/en-US/...ment/toDataURL
Записываешь в хранилище.


Если только клиент нажмет "сохранить" =), тогда без канваса =)

Я так понял ему saveAs нужен для сохранения)

Lemme 07.09.2015 18:40

KupueIIIKo, ну мало ли, он у клиента хочет что-то сохранить ;)

KupueIIIKo 07.09.2015 18:59

Цитата:

Сообщение от Lemme (Сообщение 387451)
KupueIIIKo, ну мало ли, он у клиента хочет что-то сохранить ;)

Может знаешь как сделать кроссбраузерный saveAs?)

Lemme 07.09.2015 19:23

KupueIIIKo, да не, я же нуб :-E
Но, http://caniuse.com/ знает все о кроссбраузерности)

KupueIIIKo 07.09.2015 20:12

Цитата:

Сообщение от Lemme (Сообщение 387457)
KupueIIIKo, да не, я же нуб :-E
Но, http://caniuse.com/ знает все о кроссбраузерности)

Того, что он знает мне не хватает) Кстати по этому поводу свою новую подпись сделал)

tsigel 08.09.2015 12:04

Может не в тему но это разве не везде работает?
http://jsfiddle.net/AbdiasSoftware/7PRNN/

KupueIIIKo 08.09.2015 16:13

Цитата:

Сообщение от tsigel (Сообщение 387523)
Может не в тему но это разве не везде работает?
http://jsfiddle.net/AbdiasSoftware/7PRNN/

На андройде не работает) Спасибо за совет прям вроде должен работать) Вопрос а кроссбраузерного JS для CANVAS нету?) я ищу в гугле пока не наткнулся

tsigel 08.09.2015 16:23

KupueIIIKo,
На каком андройде и в каком браузере? Работает ли в эмуляторе?
Канвас почти кроссбраузерен.

Lemme 08.09.2015 16:25

KupueIIIKo, не надо так про андроид.

Последний Chrome, Android 5.1.1

tsigel 08.09.2015 16:40

KupueIIIKo,
Скорее всего вы упираетесь в кроссориджин, на сколько я понял toDataURL по соображениям безопасности не дает сделать это с картинками (только то что нарисовано).

есть ещё getImageData, но тогда вы упретесь в кроссориджин.

А так не работает?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>

</head>
<body>

<input placeholder="Введите урл картинки" />

<script>
window.onload = function () {
    document.querySelector('input').addEventListener('input', function () {
        var link = document.createElement('a');
        link.href = this.value;
        link.download = 'yandex.png';
        link.click();
    }, false);
};
</script>
</body>
</html>

tsigel 08.09.2015 16:42

http://htmlbook.ru/html/a/download
:(

KupueIIIKo 08.09.2015 18:27

Цитата:

Сообщение от tsigel (Сообщение 387583)

Не кроссбраузерный

tsigel 08.09.2015 18:29

KupueIIIKo,
Придется подключить сервер :(

KupueIIIKo 08.09.2015 18:30

Цитата:

Сообщение от tsigel (Сообщение 387523)
Может не в тему но это разве не везде работает?
http://jsfiddle.net/AbdiasSoftware/7PRNN/

ANDROID 2.1 toDataUrl не поддерживает, где найти кроссбраузерный скрипт чтоб его подлючить для неподдерживаемых браузерами?

KupueIIIKo 08.09.2015 19:02

Цитата:

Сообщение от tsigel (Сообщение 387618)
KupueIIIKo,
Придется подключить сервер :(

Идеальное решение через saveAs
Но не могу кроссбраузерно, щас проверю target='_blank' на андройде как будет реагировать

KupueIIIKo 08.09.2015 19:06

Цитата:

Сообщение от tsigel (Сообщение 387618)
KupueIIIKo,
Придется подключить сервер :(

Кстати сервак мне и так отдает base64) с этим проблем нет) Чисто нужно показывать окно куда сохранить изображение)

То есть кликнул и сохранить файл)

tsigel 08.09.2015 19:08

KupueIIIKo,
ну он же может выдать ссылку на скачивание, в чем проблема?

KupueIIIKo 08.09.2015 19:19

Цитата:

Сообщение от tsigel (Сообщение 387630)
KupueIIIKo,
ну он же может выдать ссылку на скачивание, в чем проблема?

Вообщем суть в том, что открывается изображение а не окно сохранения файла)

https://github.com/dcneiner/Downloadify

Вот работает) Сохранить файл)

KupueIIIKo 08.09.2015 20:55

Цитата:

Сообщение от tsigel (Сообщение 387630)
KupueIIIKo,
ну он же может выдать ссылку на скачивание, в чем проблема?

c .htaccess дружишь?) Помощь нужна) Решил всетаки через сервак сделать)

Lemme 08.09.2015 21:00

KupueIIIKo, если на php сервер, то вот - с помощью header'ов

http://habrahabr.ru/post/151795/

KupueIIIKo 08.09.2015 21:27

Цитата:

Сообщение от Lemme (Сообщение 387659)
KupueIIIKo, если на php сервер, то вот - с помощью header'ов

http://habrahabr.ru/post/151795/

Суть такова, что вот я отдаю картинку...

ob_start();
imagejpeg($auth_image,NULL,100);
$buffer = ob_get_clean();
ob_end_clean();
imagedestroy($auth_image);
echo base64_encode($buffer);


И теперь чтоб сохранить мне снова серверу передать картинку?)

Тупо получается я так считаю)

Сохранять картинку на сервере не вариант)

У меня генерируется лично для пользователя и сразу ему выводиться)

Это я делаю регистрацию и авторизацию на картинках)

laimas 08.09.2015 21:40

Цитата:

Сообщение от KupueIIIKo
И теперь чтоб сохранить мне снова серверу передать картинку?)

Сохранить на сервере?


Часовой пояс GMT +3, время: 16:38.