|
JavaScript / HTML Создание динамической разметки страниц |
14.01.2015, 17:19
|
#1
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
скачать файл в js и преобразовать в base64
Можно ли как-то скачать файл средствами js и преобразовать его в base64? Желательно не html5 пока.
|
(Offline)
|
|
14.01.2015, 18:36
|
#2
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.01.2015, 22:24
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Эх, опять проблемы, кроссдоменные запросы не канают
Думал обману Unity и загружу аватары игроков через js, а фиг там.
|
(Offline)
|
|
15.01.2015, 00:16
|
#4
|
Бывалый
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений (для 275 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Почему нельзя получить урлы аватарок и передать их в юнити, который их сам загрузит?
|
(Offline)
|
|
15.01.2015, 00:44
|
#5
|
Unity/C# кодер
Регистрация: 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)
|
|
|
(Offline)
|
|
15.01.2015, 00:51
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Если юзаешь JS, то глянь на флаг:
img.crossOrigin = "Anonymous";
Он позволяет грузить с кросс-домена, и лезть в файл.
Если уж совсем извратиться, и есть JS, можно так загрузить файл, отрисовать в canvas2d затем получить png картинку toDataUrl и уже попробовать скушать ее.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.01.2015, 00:55
|
#7
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
А как это использовать? Создавать скрытые теги для картинок, но потом их как-то надо прочитать и передать в Unity в виде текста. А канвас не вариант, пока не хочется использовать html5. В общем забью пока на это дело.
|
(Offline)
|
|
15.01.2015, 01:02
|
#8
|
.
Регистрация: 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(image, 0, 0); var pngBlob = canvas.toDataUrl(); }; image.src = 'http://...';
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.01.2015, 01:04
|
#9
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
А как с нее данные получить после загрузки? Мне нужно текстуру в вэб плеере создать.
|
(Offline)
|
|
15.01.2015, 01:06
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
pngBlob - это блоб, на самом деле чистая png.
Можно заюзать toImageData() - даст вообще массив пикселей, делай с ними что хочешь, пакуй, шли, распаковывай.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.01.2015, 01:08
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
ну это опять canvas и html5
|
(Offline)
|
|
15.01.2015, 16:31
|
#12
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Ага
|
(Offline)
|
|
16.01.2015, 14:03
|
#13
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Сообщение от moka
Если юзаешь JS, то глянь на флаг:
img.crossOrigin = "Anonymous";
Он позволяет грузить с кросс-домена, и лезть в файл.
Если уж совсем извратиться, и есть JS, можно так загрузить файл, отрисовать в canvas2d затем получить png картинку toDataUrl и уже попробовать скушать ее.
|
В общем одна фигня
Uncaught SecurityError: Failed 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 policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://steamcraft.landrays.com' is therefore not allowed access.
Хотя часть аватаров загрузилось, подскажите, как обработать последнюю ошибку?
|
(Offline)
|
|
16.01.2015, 15:01
|
#14
|
.
Регистрация: 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 policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://steamcraft.landrays.com' is therefore not allowed access.
Хотя часть аватаров загрузилось, подскажите, как обработать последнюю ошибку?
|
Последнюю уже не выйдет, т.к. это уже обычно жестко регулируется. Ты по идее можешь сделать мелкий сервис, который будет на твоем back-end'е вытягивать аватарки, т.к. с node.js с правильными header'ами будет проще, и кидать их на S3, и уже в игре грузить из S3 или другого хранилища.
|
(Offline)
|
|
16.01.2015, 15:17
|
#15
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: скачать файл в js и преобразовать в base64
Мне бы хотя бы узнать, что эта ошибка произошла. И вернуть результат, что не получилось скачать...
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:55.
|