Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> perl+post+бинарный файл 
:(
    Опции темы
yodgik1
Дата 6.2.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Подскажите что делаю не так при передаче постом бинарного файла файл изменяется 
ни как не могу понять в чём дело. 
Код

#!c:\perl\bin\perl -w
#
#
print "Content-Type: text/html; charset=utf-8\n\n";

use MIME::Entity;
use MIME::Base64;
use CGI::Carp qw(fatalsToBrowser);
use URI::Escape 'uri_escape_utf8';
use Encode;

binmode STDIN;
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
@in = split(/[&;]/,$in);
foreach $i (0 .. $#in) {
    $in[$i] =~ s/\+/ /g;
    ($key, $val) = split(/=/,$in[$i],2);
    $key =~ s/%(..)/pack("c",hex($1))/ge;
    $val =~ s/%(..)/pack("c",hex($1))/ge;
    $in{$key} .= "\0" if (defined($in{$key})); 
    $in{$key} .= $val;
}
        my $text= $in{aa}; 


my $a = decode_base64($text);

binmode FILE;
open (FILE, ">Log.txt");
flock (FILE, 2);
print FILE "$a";
close FILE;


PM MAIL   Вверх
amg
Дата 6.2.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 1
Всего: 50



Хм... Если содержимое действительно бинарное, то декодировать его из base64 выглядит странно.
PM MAIL   Вверх
ginnie
Дата 6.2.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



Уважаемый yodgik1, а чем модуль CGI не устраивает?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
yodgik1
Дата 6.2.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



почему странно ? что бы передать бинарный файл в приложение от кодируется в base 64  затем передаётся в перл там раскодируется в бинарник

Добавлено через 51 секунду
да это без разницы и так и так пробовал
PM MAIL   Вверх
ginnie
Дата 6.2.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



yodgik1, может почитать документацию?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
yodgik1
Дата 6.2.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Ткните пальцем куда именно смотреть.
PM MAIL   Вверх
yodgik1
Дата 6.2.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Заметил что добавляется символ "0D" 
PM MAIL   Вверх
ginnie
Дата 6.2.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



yodgik1, советую сделать так


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
yodgik1
Дата 6.2.2008, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



с этим всё придельно стало ясно нужно было 
binmode FILE; сделать 
PM MAIL   Вверх
yodgik1
Дата 7.2.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



а подскажите дальше зашёл в тупик 
после того как получу данные мне их надо за pgp  всё pgp делает нормально файл на выходе не бинарный
Код

   $objPGP->Version(6.5.8);  # (not currently used, but might be later)
   $objPGP->PgpExePath("C:\\Progra~1\\Networ~1\\PgpNt\\PGP.exe");
   $objPGP->PgpKeyPath("C:\\Progra~1\\Networ~1\\PgpNt\\");
   $objPGP->PgpTempDir("C:\\");
   $objPGP->PublicKey($key_id);
   $objPGP->PlainText($decode_plain_text_message);
   $objPGP->Encrypt;
   ($encrypted_message) =$objPGP->EncryptedText;

Как сказать что бы переменная в который содиржимое файла бинарное??
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.