![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Upload файлов на сервер посредством CGI [D6, WinXP]
Алексей_К © (2005-05-24 06:56:00)Необходимо передать файл на сервер, принимает файл CGI-скрипт.
Попробывал следующее решение: В TWebRequest есть свойство Files, когда обращаюсь к этому свойству, возникают ошибки типа "Access violation at address ...".
В хелпе написано "The TAbstractRequestFiles object contains uploaded files extracted from the HTTP request.", но как этим правильно пользоваться?
Код:
...
const
c=' http://127.0.0.1/cgi-bin/up.exe';
...
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var page:TSTringlist;
f:TFileStream;
begin
page:=TSTringlist.Create;
page.Add('<html>');
if Request.MethodType=mtGET then
begin
page.Add('<head><title>Form upload.</title></head><body>');
page.Add('<form action="'+c+'" method="POST">');
page.Add('<input type="file" name="fn" value="files">');
page.Add('<input type="submit" name="go" value="upload...">');
page.Add('</form>');
end;
if request.MethodType=mtPOST then
begin
f:=TFileStream.Create('file',fmCreate);
f.CopyFrom(Request.Files.Items[0].Stream,Request.Files.Items[0].Stream.Size);
f.Free;
page.Add('<head><title>Form 2.</title></head><body>');
page.Add('Files count: '+inttostr(Request.Files.Count));
page.Add('
<a href="'+c+'">back</a>');
page.Add('
Content:
<hr>'+request.Content+'<hr>');
end;
page.Add('</body></html>');
Response.Content:=page.Text;
page.Free;
end;
Подскажите плиз, что делать...
Алексей_К (2005-05-26 06:08:00) [1]Оказываеться для передачи файлов необходимо в теге <Form> указать следующее:
<form method="POST" action="..." ENCTYPE="multipart/form-data">
Файл отправляеться, есть одно "но". Файлы имеющие размер более 73536 байт усекаются, т.е. 1 меговый файл весь не скачаеться на сервер, а только первые его 73536 байта.
Может у кого-нибудь есть инфа по этой части?