Witam, mam taki oto skrypcik w PHP
<?php
$upload_dir = './uzytkownicy/';
$maxfilesize = 102400;
$send = $HTTP_POST_VARS['send'];
$userfile = $HTTP_POST_FILES['userfile'];
$phpself = $HTTP_SERVER_VARS['PHP_SELF'];
if(isset($send)) {
if(is_uploaded_file($userfile['tmp_name'])) {
if($userfile['size'] <= $maxfilesize) {
if(move_uploaded_file($userfile['tmp_name'],
$upload_dir.'/'.$userfile['name']))
echo '<p>Plik został wysłany</p>';
}
}
}
?>
<form action="<?php echo $phpself; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxfilesize; ?>">
<input type="file" name="userfile">
<input type="submit" name="send" value="Wyślij plik">
</form>
Zorientowani domyślą się, że jest to skrypt, który pozwala uploadować pliki na serwer za pomocą forumlarza ;)
Z kolei taką mam procedurę odpowiedzialną za wysyłanie metodą post przez idhttp w delphi:
var
ResponseStream: TMemoryStream;
MultiPartFormDataStream: TidMultiPartFormDataStream;
begin
MultiPartFormDataStream := TidMultiPartFormDataStream.Create;
ResponseStream := TMemoryStream.Create;
try
IdHttp1.Request.ContentType := MultiPartFormDataStream.RequestContentType;
MultiPartFormDataStream.AddFile('userfile', 'program.jpg', 'multipart/form-data');
MultiPartFormDataStream.Position := 0;
IdHTTP1.Post('http://xx.pl/upload.php', MultiPartFormDataStream, ResponseStream);
finally
MultiPartFormDataStream.Free;
ResponseStream.Free;
end;
end;
I nie wysyła ten program żadnych plików na serwer. Nie wiem czy to wina skryptu (przez przeglądarkę i formularz działa normalnie) czy programu. Gdzie popełniłem błąd? Dodam, że responsestream zwraca kod strony bez komunikatu "plik wysłano".
Z góry dzięki.