[Comm] file uploading via http

Aleksander N. Gorohovski =?iso-8859-1?q?angel_=CE=C1_feht=2Edgtu=2Edonetsk=2Eua?=
Ср Апр 27 09:44:25 MSD 2005


On Wed, 27 Apr 2005 08:41:21 +0300, Stanislav Yadykin <tosick на altlinux.ru>  
wrote:

> В сообщении от Среда, 27-Апр-2005 09:29 Denis G. Samsonenko написал(a):
>> День добрый!
>>
>> Не подскажет ли кто, как делается upload файлов через http. Как сделать
>> форму с кнопкой я нашёл, а вот как это должно обрабатываться
>> cgi-скриптом -- нет.
>>
>> Мне надо сделать, чтобы можно было закачивать на сайт файлы через
>> html-форму. Обрабатывающий cgi-скрипт хочу писать на bash.
>
> На баше - сомневаюсь в целесообразности.

Присоединяюсь к этому мнению.
Большой геморой.
:-)

> На преле - perldoc CGI в раздел file uploads
А на perl это будет рулить за милую душу.

Могу подарить нужный Вам фрагмент из собственных сочинений:
:-)
-----------------------------------------------------------------
     use CGI qw(:standard :netscape);

     print start_html(-title=>"Download File",
                 -author=>'angel на feht.dgtu.donetsk.ua',
                 -meta=>{'copyright'=>'copyright 2002-2005 Aleksander  
N.Gorohovski'},
		-encoding=>'koi8-r',
                 -BGCOLOR=>'white');


     if ($Step eq 'One') {

	print start_multipart_form(),
	    i('Укажите место хранения (путь) и имя своего файла (*.csv) с  
выполненной работой:<BR><BR>'),
	    center(
		filefield(-name=>'filename',
         	    -default=>'example.csv',
         	    -size=>60,
         	    -maxlength=>80),
		    p,$hid,reset('reset','Очистить поля'),'&nbsp;&nbsp;&nbsp;&nbsp;',
		    submit('submit','Переслать и проверить файл'),hr(),endform);
     }
# Обработка результатов
     if (my $file = param('filename')) {

     	print center(h3("Итоги предварительного анализа полученной  
информации")),
i("От Вас получен файл данных: "),b($file),br;

	my $MyFile="MyFile";
	open(DEST,">$MyFile") || print "Er:file<BR>";
	while (<$file>) {
	    print DEST;
	}
	close(DEST);
         close $file;
     }
----------------------------------------------------------



Подробная информация о списке рассылки community