Отправка и сохранение файла на сервере с помощью CGI

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Отправка и сохранение файла на сервере с помощью CGI

Сообщение Serafim » 31.10.2008 15:09:21

Добрый день.

У меня такой вопрос: Кто-нибудь знает как можно сохранить файл, отправленный с помощью формы, на сервере, используя CGI программу, написанную на Pascal?
Код формы примерно такой:
'<form action=brrr.exe method=post enctype="multipart/form-data">
<input type=file name=brrr>
</form>'
Serafim
новенький
 
Сообщения: 18
Зарегистрирован: 29.07.2008 14:55:16
Откуда: Екатеринбург

Re: Отправка и сохранение файла на сервере с помощью CGI

Сообщение Odyssey » 31.10.2008 22:35:08

О том, как можно это сделать с помощью powtils, написано тут:
http://z505.com/cgi-bin/powtils/docs/1. ... adfiletips
Сам не пробовал. В этом примере сильно смущает жестко заданный путь для закачанных файлов, но других вариантов я не знаю.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Отправка и сохранение файла на сервере с помощью CGI

Сообщение shade » 01.11.2008 12:17:17

Можно через CURL, читай доку, в частности по функции curl_easy_setopt
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Re: Отправка и сохранение файла на сервере с помощью CGI

Сообщение v-t-l » 02.11.2008 15:09:39

Точно не помню, но по-моему при методе POST данные формы помещаются сервером в переменные окружения перед вызовом CGI-приложения. Функции GetEnvironmentString, GetEnvironmentVariable и GetEnvironmentVariableCount должны помочь.
v-t-l
энтузиаст
 
Сообщения: 733
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Отправка и сохранение файла на сервере с помощью CGI

Сообщение Sawer » 02.11.2008 20:03:35

вот рабочий код из проекта:
Код: Выделить всё
program update;
{$mode delphi}{$H+}

uses unix, pwinit, pwmain, compactsysutils, pwenvvar;

const FUPL = 'fupl';

procedure ShowForm;
begin
  Outln('<b>Обновление программы</b>');
  Outln('<form method=post action="" enctype="multipart/form-data">');
  Outln('<input name="'+FUPL+'" type=file size=20>');
  Outln('<input type=submit value="Обновить">');
  Outln('</form>');
end;

procedure ProcessUpfile;
var AbsoluteFname: string;
begin
  AbsoluteFname := '/home/file';
  Out('Обновление...');
  SaveUpFile(FUPL, AbsoluteFname);
  if SaveUpFile(FUPL, AbsoluteFname) then
  begin
    Out('Обновление проведено успешно!');
  end
  else Out('Ошибка при обновлении!');
end;

begin
  if IsUpFile(FUPL) then ProcessUpFile else ShowForm;
end.


обращаю внимание на обязательный режим {$mode delphi}, иначе НЕ РАБОТАЕТ!!!
Sawer
новенький
 
Сообщения: 69
Зарегистрирован: 15.05.2007 22:53:48

Re: Отправка и сохранение файла на сервере с помощью CGI

Сообщение shade » 03.11.2008 11:14:32

v-t-l писал(а):Точно не помню, но по-моему при методе POST данные формы помещаются сервером в переменные окружения перед вызовом CGI-приложения.

Нет, данные POST в CGI читаются из стандартного ввода.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

Рейтинг@Mail.ru
cron