20.05.2013, 14:40
|
Интересующийся
|
|
Регистрация: 17.05.2013
Сообщений: 10
|
|
У меня даже такой код не работает:
var reader = new FileReader();
var dataURL = reader.readAsDataURL("c:/fon.jpg");
var base64 = dataURL.replace(/^data:[^,]+,/, ""); // отрезаем начало
var binaryString = window.atob(base64); // разворачиваем Base64
В браузерах ничего в консоли не пишется... Можно как-то сделать чтобы debug был пооткровенней?)
А код из статьи был такой:
var dataURL = canvas.toDataURL("image/png"); // или результат чтения FileReader
var base64 = dataURL.replace(/^data:[^,]+,/, ""); // отрезаем начало
var binaryString = window.atob(base64); // разворачиваем Base64
// а теперь собираем muptipart, ничего сложного
var uniq = '1234567890';
var data = [
'--_'+ uniq
, 'Content-Disposition: form-data; name="my-file"; filename="hello-world.png"'
, 'Content-Type: image/png'
, ''
, binaryString
, '--_'+ uniq +'--'
].join('\r\n');
var xhr = new XMLHttpRequest;
xhr.open('POST', '/upload', true);
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=_'+uniq);
xhr.sendAsBinary(data);
Я вообще правильно понял комментарий
"// или результат чтения FileReader"
|
|
20.05.2013, 14:45
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Svetozar,
1. Я бы не использовал sendAsBinary(data), а пользовался второй методой
Если браузер не поддерживает xhr.sendAsBinary для всех браузеров
И самое первое - создайте просто HTML форму и отправьте закаченный с компа файл - проверить что работает серверная часть
|
|
20.05.2013, 14:57
|
Интересующийся
|
|
Регистрация: 17.05.2013
Сообщений: 10
|
|
Сообщение от Deff
|
Svetozar,
ну FormData формирует такой же запрос как и реальная форма...
Если Ваш PHP сможет обрабатывать запрос от реальной тестовой формы, значит и от FormData аналогично
|
У меня нет PHP... Есть какой-то закрытый сервер, который принимает REST команды и выдает результаты.
|
|
20.05.2013, 15:03
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Svetozar,
Дык всё одно - он же должен принимать какие то отправки формой ?
наверняка есть страницы с формами, гляньте исходники страниц
|
|
20.05.2013, 15:07
|
Интересующийся
|
|
Регистрация: 17.05.2013
Сообщений: 10
|
|
Сообщение от Deff
|
Svetozar,
1. Я бы не использовал sendAsBinary(data), а пользовался второй методой
Если браузер не поддерживает xhr.sendAsBinary для всех браузеров
И самое первое - создайте просто HTML форму и отправьте закаченный с компа файл - проверить что работает серверная часть
|
Что имеете в виду под вторым методом?
У меня, кстати, из этого скрипта не срабатывает именно эта строка:
var base64 = dataURL.replace(/^data:[^,]+,/, ""); // отрезаем начало
|
|
20.05.2013, 15:10
|
Интересующийся
|
|
Регистрация: 17.05.2013
Сообщений: 10
|
|
Сообщение от Deff
|
Svetozar,
Дык всё одно - он же должен принимать какие то отправки формой ?
наверняка есть страницы с формами, гляньте исходники страниц
|
Форма для отправки есть только для изображений. И она в примере реализоавана со свистелками-перделками, что не разберешься как там вообще код проходит. В частности, используется jQuery и Dojo. Но даже какую именно функцию вызывают непонятно, потому что формы, как таковой, нет - там выплывающий div на который предлагают drop'нуть картинку, которая магией оказывается на сервере... %)
|
|
20.05.2013, 15:18
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от Svetozar
|
У меня даже такой код не работает:
|
Сообщение от Svetozar
|
var dataURL = reader.readAsDataURL("c:/fon.jpg");
|
как вы себе это представляете?
Пишется скрипт задаётся путь и имя файла, внедряется под видом чего угодно на любые сайты.
И начинает сам тягать файлы по указанным путям (например теже вебмани файлы) и отдаёт их на сторонний сервер ? Здорово конечно , наверное , но такого в природе быть не может -всё равно что, выпускать летний вариант сейфов -сейф открытый со всех сторон.
Да и судя по постам -вам стоит читать с самых основ языка.
Последний раз редактировалось dmitriymar, 20.05.2013 в 15:24.
|
|
20.05.2013, 15:23
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от Svetozar
|
Мне неважно загружать частями или полностью. Сервера полностью локальные - можно целиком и пачками.
|
Локальность не имеет значения. Имеет значение то, что большие файлы будут обрабатываться долго, да ещё и память всю доступную сожрут.
|
|
20.05.2013, 15:32
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Svetozar
|
Форма для отправки есть только для изображений.
|
Как всё - мучительно. Если есть пользователи, наверно есть загрузка автара с компа - гляньте форму
|
|
20.05.2013, 15:32
|
Интересующийся
|
|
Регистрация: 17.05.2013
Сообщений: 10
|
|
Сообщение от dmitriymar
|
как вы себе это представляете?
Пишется скрипт задаётся путь и имя файла, внедряется под видом чего угодно на любые сайты.
И начинает сам тягать файлы по указанным путям (например теже вебмани файлы) и отдаёт их на сторонний сервер ? Здорово конечно , наверное , но такого в природе быть не может -всё равно что, выпускать летний вариант сейфов -сейф открытый со всех сторон.
Да и судя по постам -вам стоит читать с самых основ языка.
|
Критика добротная, но почему-то без конструктивного предложения. Как писать на этом языке я представляю, а вы говорите не о языке, а правилах разработки веб-страниц, в которых я не разбираюсь и боюсь слишком много времени убью ради ответа на ОДИН вопрос:
Как представить изображение с локального диска в виде данных, чтобы отправить POST'ом на сервер?
Вот правда, в остальном вопросов нет. Потихоньку счас изучаю jQuery, и напишу через месяц какой-то простенький вменяемый интерфейс. Но сама логика JavaScript и его настроек + настроек и возможностей браузера делает меня офигевшим %) особенно после простеньких и надежных скриптов типа VBasic в уютной среде vizrt.
|
|
|
|