Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Загрузка файла в переменную (https://javascript.ru/forum/jquery/32368-zagruzka-fajjla-v-peremennuyu.html)

nerv_ 18.10.2012 20:47

Gvozd, спасибо за ответ

Oleg_Antonov 19.10.2012 18:19

Да. Может. =) Мост такой написал.
Теперь другая проблема появилась. Загружаю я через flash файл, передаю его в js. Обрабатываю. А теперь вопрос как передать его на сервер?
Файлы могут быть до 20мб. Данные закодированны в base64.
Пробывал через ajax. У POST есть ограничения на размер передаваемого файла. И к тому же base64 корявится (точно удаляются +, может и еще что-то). Как поступить в данной ситуации?

Dim@ 19.10.2012 18:32

Oleg_Antonov,
вроде есть возможность передавать файлы через iframe - просто слышал, может быть нельзя, но 20мб это очень много :)

Hoshinokoe 19.10.2012 20:27

Dim@,

можно загружать файлы через iframe
http://javascript.ru/ajax/transport/iframe

dmitriymar 19.10.2012 23:09

Цитата:

Сообщение от Oleg_Antonov
Загружаю я через flash файл, передаю его в js. Обрабатываю. А теперь вопрос как передать его на сервер?

Дак флешем и отдавать

Gvozd 20.10.2012 00:04

Цитата:

Сообщение от Oleg_Antonov
Пробывал через ajax. У POST есть ограничения на размер передаваемого файла

Всмысле у Ajax-овых POST-запросов?
Цитата:

Сообщение от Oleg_Antonov
И к тому же base64 корявится (точно удаляются +, может и еще что-то)

Не совсем верно
Когда вы передаете через AJAX(чистым JS, не используя библиотек вроде jQUery) POST-запрос, то вы должны его верным образом закодировать.
http://htmlbook.ru/html/form/enctype
Если вы не закодировали данные в каком-то из вариантов, то сервер все равно будет пытаться раскодировать в соответсвии с заголовками и своими настройками.
Я практически уверен, что в вашем случае сервер просто взял и раскодировал символы + в символы пробела(остальные символы не были тронуты)
Цитата:

Сообщение от Oleg_Antonov
Как поступить в данной ситуации?

1) Проверить, правда ли AJAX-POST имеет то ограничение о котором вы говорите.
Просто сгенерите длинную строку в 20 мегабайт, из одних букв A, к примеру
И пошлите ее на сервер, и посмотрите, полностью ли ее принял сервер.
2) Создать форму.
Добавить в одно ее текстовое поле пришедший файл в base64
засабмитить форму в скрытый фрейм.
на сервере распаковать base64
3) посмотреть что есть во flash-е по этой задаче, как предложил dmitriymar


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