Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.05.2013, 14:40
Интересующийся
Отправить личное сообщение для Svetozar Посмотреть профиль Найти все сообщения от Svetozar
 
Регистрация: 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"
Ответить с цитированием
  #12 (permalink)  
Старый 20.05.2013, 14:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Svetozar,
1. Я бы не использовал sendAsBinary(data), а пользовался второй методой
Если браузер не поддерживает xhr.sendAsBinary для всех браузеров

И самое первое - создайте просто HTML форму и отправьте закаченный с компа файл - проверить что работает серверная часть
Ответить с цитированием
  #13 (permalink)  
Старый 20.05.2013, 14:57
Интересующийся
Отправить личное сообщение для Svetozar Посмотреть профиль Найти все сообщения от Svetozar
 
Регистрация: 17.05.2013
Сообщений: 10

Сообщение от Deff Посмотреть сообщение
Svetozar,
ну FormData формирует такой же запрос как и реальная форма...
Если Ваш PHP сможет обрабатывать запрос от реальной тестовой формы, значит и от FormData аналогично
У меня нет PHP... Есть какой-то закрытый сервер, который принимает REST команды и выдает результаты.
Ответить с цитированием
  #14 (permalink)  
Старый 20.05.2013, 15:03
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Svetozar,
Дык всё одно - он же должен принимать какие то отправки формой ?
наверняка есть страницы с формами, гляньте исходники страниц
Ответить с цитированием
  #15 (permalink)  
Старый 20.05.2013, 15:07
Интересующийся
Отправить личное сообщение для Svetozar Посмотреть профиль Найти все сообщения от Svetozar
 
Регистрация: 17.05.2013
Сообщений: 10

Сообщение от Deff Посмотреть сообщение
Svetozar,
1. Я бы не использовал sendAsBinary(data), а пользовался второй методой
Если браузер не поддерживает xhr.sendAsBinary для всех браузеров

И самое первое - создайте просто HTML форму и отправьте закаченный с компа файл - проверить что работает серверная часть
Что имеете в виду под вторым методом?

У меня, кстати, из этого скрипта не срабатывает именно эта строка:
var base64 = dataURL.replace(/^data:[^,]+,/, ""); // отрезаем начало
Ответить с цитированием
  #16 (permalink)  
Старый 20.05.2013, 15:10
Интересующийся
Отправить личное сообщение для Svetozar Посмотреть профиль Найти все сообщения от Svetozar
 
Регистрация: 17.05.2013
Сообщений: 10

Сообщение от Deff Посмотреть сообщение
Svetozar,
Дык всё одно - он же должен принимать какие то отправки формой ?
наверняка есть страницы с формами, гляньте исходники страниц
Форма для отправки есть только для изображений. И она в примере реализоавана со свистелками-перделками, что не разберешься как там вообще код проходит. В частности, используется jQuery и Dojo. Но даже какую именно функцию вызывают непонятно, потому что формы, как таковой, нет - там выплывающий div на который предлагают drop'нуть картинку, которая магией оказывается на сервере... %)
Ответить с цитированием
  #17 (permalink)  
Старый 20.05.2013, 15:18
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Svetozar
У меня даже такой код не работает:
Сообщение от Svetozar
var dataURL = reader.readAsDataURL("c:/fon.jpg");
как вы себе это представляете?
Пишется скрипт задаётся путь и имя файла, внедряется под видом чего угодно на любые сайты.
И начинает сам тягать файлы по указанным путям (например теже вебмани файлы) и отдаёт их на сторонний сервер ? Здорово конечно , наверное , но такого в природе быть не может -всё равно что, выпускать летний вариант сейфов -сейф открытый со всех сторон.
Да и судя по постам -вам стоит читать с самых основ языка.

Последний раз редактировалось dmitriymar, 20.05.2013 в 15:24.
Ответить с цитированием
  #18 (permalink)  
Старый 20.05.2013, 15:23
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от Svetozar
Мне неважно загружать частями или полностью. Сервера полностью локальные - можно целиком и пачками.
Локальность не имеет значения. Имеет значение то, что большие файлы будут обрабатываться долго, да ещё и память всю доступную сожрут.
Ответить с цитированием
  #19 (permalink)  
Старый 20.05.2013, 15:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Svetozar
Форма для отправки есть только для изображений.
Как всё - мучительно. Если есть пользователи, наверно есть загрузка автара с компа - гляньте форму
Ответить с цитированием
  #20 (permalink)  
Старый 20.05.2013, 15:32
Интересующийся
Отправить личное сообщение для Svetozar Посмотреть профиль Найти все сообщения от Svetozar
 
Регистрация: 17.05.2013
Сообщений: 10

Сообщение от dmitriymar Посмотреть сообщение
как вы себе это представляете?
Пишется скрипт задаётся путь и имя файла, внедряется под видом чего угодно на любые сайты.
И начинает сам тягать файлы по указанным путям (например теже вебмани файлы) и отдаёт их на сторонний сервер ? Здорово конечно , наверное , но такого в природе быть не может -всё равно что, выпускать летний вариант сейфов -сейф открытый со всех сторон.
Да и судя по постам -вам стоит читать с самых основ языка.
Критика добротная, но почему-то без конструктивного предложения. Как писать на этом языке я представляю, а вы говорите не о языке, а правилах разработки веб-страниц, в которых я не разбираюсь и боюсь слишком много времени убью ради ответа на ОДИН вопрос:
Как представить изображение с локального диска в виде данных, чтобы отправить POST'ом на сервер?

Вот правда, в остальном вопросов нет. Потихоньку счас изучаю jQuery, и напишу через месяц какой-то простенький вменяемый интерфейс. Но сама логика JavaScript и его настроек + настроек и возможностей браузера делает меня офигевшим %) особенно после простеньких и надежных скриптов типа VBasic в уютной среде vizrt.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать размер картинки через форму file Sergey67 Общие вопросы Javascript 1 24.12.2011 06:37
Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента Lockpickup AJAX и COMET 17 25.04.2011 17:58
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Как обновить страницу открытую через post Роберт Общие вопросы Javascript 1 05.11.2008 14:53
XMLHTTPRequest передача имя через POST dds AJAX и COMET 0 14.08.2008 14:44