Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 14.01.2015, 17:19   #1
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
скачать файл в js и преобразовать в base64

Можно ли как-то скачать файл средствами js и преобразовать его в base64? Желательно не html5 пока.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 14.01.2015, 18:36   #2
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Конечно!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (14.01.2015)
Старый 14.01.2015, 22:24   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Эх, опять проблемы, кроссдоменные запросы не канают
Думал обману Unity и загружу аватары игроков через js, а фиг там.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 00:16   #4
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Почему нельзя получить урлы аватарок и передать их в юнити, который их сам загрузит?
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 00:44   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Смысл в том, что у WebPlayer'a есть так называемый Security Sandbox. Загружая и отображая на экране текстуру, с не разрешенного места происходит блокировака чтения данных с экрана или рендертекстур. В результате скриншот не сделать.

http://docs.unity3d.com/Manual/SecuritySandbox.html

You are allowed to download images from servers that do not have a crossdomain.xml file. However, the only thing you are allowed to do with these images is use them as textures in your scene. You are not allowed to use GetPixel() on them. You are also not allowed to read back from the screen. Both attempts will result in a SecurityException being thrown:

SecurityException: No read access to the texture data:
at (wrapper managed-to-native) UnityEngine.Texture2D:GetPixel (int,int)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 00:51   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Если юзаешь JS, то глянь на флаг:
img.crossOrigin "Anonymous"
Он позволяет грузить с кросс-домена, и лезть в файл.

Если уж совсем извратиться, и есть JS, можно так загрузить файл, отрисовать в canvas2d затем получить png картинку toDataUrl и уже попробовать скушать ее.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (15.01.2015)
Старый 15.01.2015, 00:55   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

А как это использовать? Создавать скрытые теги для картинок, но потом их как-то надо прочитать и передать в Unity в виде текста. А канвас не вариант, пока не хочется использовать html5. В общем забью пока на это дело.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 01:02   #8
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: скачать файл в js и преобразовать в base64

var image = new Image();
image.onload = function() {
    
canvas.width image.naturalWidth;
    
canvas.height image.naturalHeight;
    
ctx.drawImage(image00);
    var 
pngBlob canvas.toDataUrl();
};
image.src 'http://...'
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (15.01.2015)
Старый 15.01.2015, 01:04   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

А как с нее данные получить после загрузки? Мне нужно текстуру в вэб плеере создать.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 01:06   #10
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: скачать файл в js и преобразовать в base64

pngBlob - это блоб, на самом деле чистая png.
Можно заюзать toImageData() - даст вообще массив пикселей, делай с ними что хочешь, пакуй, шли, распаковывай.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (15.01.2015)
Старый 15.01.2015, 01:08   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

ну это опять canvas и html5
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.01.2015, 16:31   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Ага
(Offline)
 
Ответить с цитированием
Старый 16.01.2015, 14:03   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Сообщение от moka Посмотреть сообщение
Если юзаешь JS, то глянь на флаг:
img.crossOrigin "Anonymous"
Он позволяет грузить с кросс-домена, и лезть в файл.

Если уж совсем извратиться, и есть JS, можно так загрузить файл, отрисовать в canvas2d затем получить png картинку toDataUrl и уже попробовать скушать ее.
В общем одна фигня
Uncaught SecurityErrorFailed to execute 'toDataURL' on 'HTMLCanvasElement'Tainted canvases may not be exported.VM812:115 image.onload 
либо с Anonymous
Image from origin 'http://vk.com' has been blocked from loading by Cross-Origin Resource Sharing policyNo 'Access-Control-Allow-Origin' header is present on the requested resourceOrigin 'http://steamcraft.landrays.com' is therefore not allowed access
Хотя часть аватаров загрузилось, подскажите, как обработать последнюю ошибку?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 16.01.2015, 15:01   #14
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Сообщение от pax Посмотреть сообщение
либо с Anonymous
Image from origin 'http://vk.com' has been blocked from loading by Cross-Origin Resource Sharing policyNo 'Access-Control-Allow-Origin' header is present on the requested resourceOrigin 'http://steamcraft.landrays.com' is therefore not allowed access
Хотя часть аватаров загрузилось, подскажите, как обработать последнюю ошибку?
Последнюю уже не выйдет, т.к. это уже обычно жестко регулируется. Ты по идее можешь сделать мелкий сервис, который будет на твоем back-end'е вытягивать аватарки, т.к. с node.js с правильными header'ами будет проще, и кидать их на S3, и уже в игре грузить из S3 или другого хранилища.
(Offline)
 
Ответить с цитированием
Старый 16.01.2015, 15:17   #15
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: скачать файл в js и преобразовать в base64

Мне бы хотя бы узнать, что эта ошибка произошла. И вернуть результат, что не получилось скачать...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:17.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com