Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Сеть > кодирование в base 64


Автор: teplotaya 15.7.2006, 23:01
Код

procedure TForm1.Button1Click(Sender: TObject);
var
StringStream: TStringStream;
PostVars: TStringList;
FileStream: TFileStream;
begin
PostVars := TStringList.Create;
StringStream := TStringStream.Create('');
FileStream := TFileStream.Create('C:\tatu.jpg', fmOpenRead or fmShareDenyWrite);
try
IdHTTP1.Connect;
StringStream.CopyFrom(FileStream, FileStream.Size);
PostVars.Values['file'] := IdEncoderMIME1.Encode(StringStream.DataString);
IdHTTP1.Post('http://www.domain.de/upload/upload.php?pDatei=tatu.jpg', PostVars, StringStream);
finally
StringStream.Free;
PostVars.Free;
FileStream.Free;
end;
end;




upload.php:
Код


$datei = base64_decode($file);
$fp = fopen($HTTP_GET_VARS['pDatei'], "w");
fwrite($fp, $datei);
fclose($fp);




ничего не получается. в чем трабл ?

для кодирования в base64 я использую компонент из набора indy.
данные нормально поступают в mime на сайт. патом я их перекодирую обратно
base64_decode($file);
после перекодировки файл на ~1% по размеру становится меньше и не открывается smile
в компоненте дельфовой есть такой параметр как fillchar
по умолчанию он равен "=" я ставлю #0 
но все равно файл получается некоррректный
в чем же дело ?
может кто знает альтернативную функцию кодирования jpeg в base 64 ?

имо может я что то криво делаю ?
  

Автор: alligator 16.7.2006, 12:03
http://ru.php.net/manual/ru/features.file-upload.php 

Автор: teplotaya 23.7.2006, 15:48
alligator, это я уже проштудировал. если через форму лить то проблем невозникает.
у меня просто возникла идея написать утилитку.
нажимаеш правой мышкий на файл выбираеш upload в меню
жмеш
файл автоматически заливается на сервер и в буфере автоматически появляется ссылка на
этот файл на стороне сервера. очень удобно.
помогите в общем с реализацией.
 

Автор: Mal Hack 23.7.2006, 17:33
teplotaya, по POST протоколу передаем данные, согласно всем правилам. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)