Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

помогите с download.cgi   Найти похожие ветки 

 
Logo   (2006-04-14 06:35) [0]

Ниже привожу код программы download.cgi. Пытаюсь использовать для скачивания файлов с моего вебсервера фирмы. Для этого в HTMLках вписываю такие строки:
<a href=/scripts/download.cgi?file=/soft/proga1.exe>
<a href=/scripts/download.cgi?file=/soft/proga2.exe>
<a href=/scripts/download.cgi?file=/soft/readme.txt>

Проблема в том, что файл выкачивается не полностью!
Очень надеюсь найти ответ.

Код в студию:

program download;

{$APPTYPE CONSOLE}
uses
SysUtils;

label FinLabel,mBad,mGood;

{$E cgi}

var
sQueryString,sFileName,sTmp,sWWW:String;
fIn:TextFile;
size: Longint;

begin
sWWW:="c:\Inetpub\wwwroot";
sQueryString:=GetEnvironmentVariable("QUERY_STRING");

If length(sQueryString)=0 then goto mBad;

iPos:=Pos("file=",sQueryString);
If iPos=0 then goto mBad
else sFileName:=Copy(sQueryString,6,Length(sQueryString)-iPos);

If Not(FileExists(sWWW+"/"+sFileName)) then goto mBad;

goto mGood;

mBad:
sTmp:="Content-type: text/html";
writeln(sTmp);
writeln;
writeln;
sTmp:="<html>";
writeln(sTmp);
sTmp:="<head>";
writeln(sTmp);
sTmp:="<meta http-equiv="Refresh" Content="5; URL=http://mysite/">"
writeln(sTmp);
sTmp:="<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">";
writeln(sTmp);
sTmp:="<title>Ошибка.</title>";
writeln(sTmp);
sTmp:="</head>";
writeln(sTmp);
sTmp:="<body>Ошибка.</body></html>";
writeln(sTmp);
goto FinLabel;

mGood:
AssignFile(fIn,sWWW+"/"+sFileName);
Reset(fIn);
// size:=FileSize(fIn)*128;

sTmp:="Content-Type: application/octet-stream";
writeln(sTmp);
sTmp:="Content-Transfer-Encoding: binary";
writeln(sTmp);
// sTmp:="Content-Length: "+IntToStr(size);
// writeln(sTmp);

sTmp:="Content-Disposition: attachment; filename="+sFileName;
writeln(sTmp);

writeln;
writeln;

While Not(EOF(fIn)) do begin
 Readln(fIn,sTmp);
 Writeln(sTmp);
end;
CloseFile (fIn);

FinLabel:

end.


 
Dmitrij_K   (2006-04-14 08:52) [1]

Не читай Readln бинарные файлы.
См. TFileStream, FileOpen, CreateFile


 
Чапаев ©   (2006-04-14 12:06) [2]


> writeln(sTmp);
>
> writeln;
> writeln;

Неправильно, должна быть одна пустая строка. Ну и про ReadLn уже сказали.


 
SpellCaster   (2006-04-14 17:12) [3]

Ууууууу.... goto... как все запущено...



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
15-1144391965
dreamse
2006-04-07 10:39
2006.04.30
помогите найти сайт


2-1145046482
Golik
2006-04-15 00:28
2006.04.30
кусок текста


15-1144386699
Feg16
2006-04-07 09:11
2006.04.30
Проверка на программерность


15-1144358561
Gero
2006-04-07 01:22
2006.04.30
Поклонникам Opera посвящается


1-1143312945
Muhan_
2006-03-25 21:55
2006.04.30
Как программно поменять раскладки клавы с англ. на русскую ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский