![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
Всем привет.
Как сохранить бинарные данные в файл переданные в закодированном виде (Base64) через POST метод? Я думаю у профи это не вызовет труда, а я только учусь. У меня получилось следущее:
Но файл сохраняется с битыми данными. =( Я делал и через переменную, а потом её прописывал в fwrite и так, всё одно, видимо символы до 31 кода не сохраняются, т.к. во время записи данные представляются как строковые (моё предположение). Поделитесь мыслью, да и код бы хотелось правильный увидеть. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Drache |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 31.3.2006 Репутация: 1 Всего: 3 |
А что собой представляет $HTTP_POST_VARS["data"] ?
Какой тип input'а ? |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 13 Всего: 78 |
Попробуй через переменную:
-------------------- Ll 2 |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
А ты чем передаёшь?
Как я понимаю данные передаются всяко не браузером.... Там где ты передаёшь пошли доп заголовки:
А уже в PHP обрабатывай не как через &_POST['data'], а как $_FILES[].... Сначала сохрани, а потом уже раскодируй.... Это сообщение отредактировал(а) AntonioBanderaz - 2.4.2006, 10:32 -------------------- ГЫ... |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
Drache, Это картинка закодированная base64.
Добавлено @ 09:41 Guedda, ок, попробую. спасибо. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
AntonioBanderaz, передаю через мобильник. Content-Type: application/x-www-form-urlencoded
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Drache |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 31.3.2006 Репутация: 1 Всего: 3 |
ну это конечно хорошо, что картинка, но я не о том
начнем с самого начала: перед тобой формочка. Как ты добавляешь картинку эту самую? Инпут типа файл или как ты это делаешь? Если да, то послушай AntonioBanderaz, правильно говорит. to Gueda: и что поменялось? Насколько я знаю, твой вариант как раз сработает только в более позжих версиях пхп, а вариант javastic'a сработает в любом случае. |
|||
|
||||
| AntonioBanderaz |
|
||||||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
javastic, попробуй сравнить что у тебя пришло в BASE64...
На самом деле если ты передаёшь картинку, то не проще ли сделать multipart форму, и уже в didposition полставить MIME тип той картинки, которую ты передаёшь? Это будет мне кажется правильнее.... В base64 у тебя размер картинки увеличится в 1.3 раза... Что я имею ввиду:
Само тело, то для чего считаем Content-Lenght
На вскидку MIME типы которые могу припомнить
Что на стороне PHP: не нужно ни каких постов просто бери из массива $_FILES и сохраняй её куда тебе нужно ))) -------------------- ГЫ... |
||||||
|
|||||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
AntonioBanderaz, у меня есть уже вариант с Multipart-form/data и он работает, спасибо. Просто я видел пример где использован base64 и я решил повторить сиё.
Кстати, ещё такая ситуация. Если я передаю данные как boundary но блоками, как быть тогда в таком случае? Пусть есть файл размером 20Кб, я хочу передавать блоками по 2Кб. И ещё, помимо файла мне нужно передать некую дополнительную информацию, к примеру e-mail того человека который передает картинку серверу. В первом случае всё просто: [email protected]&data=NI23nCDHEWHBSdhs= и т.д. во втором случае: Content-Disposition: form-data; name="PICTURE"; filename="PICTURE.GIF" \r\n Content-Type: image/gif \r\n \r\n M23CVEPIOifjefnwf283r t2g973d8r3g72g3s7d63g4d6r8gd423 \r\n вот что меня стопарнуло в отношении второго случая. Добавлено @ 09:21 Drache, я передаю картинку не через форму, а через мобильное приложение. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
Да не так сложно, вот тебе примерчик небольшой.... )
Это сообщение отредактировал(а) AntonioBanderaz - 3.4.2006, 19:50 -------------------- ГЫ... |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
AntonioBanderaz, класс! =) Спасибо! Всё понял.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
AntonioBanderaz, ещё вопрос. Допустим я не могу отправить всё одним пакетом, а только отдельными (по 20кб), но к примеру с разными именами. Как мне потом склеить эти несколько файлов? Или может есть способ принимать и добавлять сразу к имеющимся данным? (второе было бы предпочтительней).
У меня в скрипте используется
Может можно применить fwrite ? -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| AntonioBanderaz |
|
|||
![]() Velichko Anton ![]() ![]() Профиль Группа: Участник Сообщений: 851 Регистрация: 28.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 18 |
Даже нужно.... можно также fputs (Это её псевдоним) Дерзай, я просто на работе и не могу больше ответить.... Я тебе из дома скину пример кода -------------------- ГЫ... |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: нет Всего: 27 |
AntonioBanderaz, спасибо! =) Разобрался сам.
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |