Forum Webscript.Ru

Программирование => Perl => Тема начата: val от 01 Ноября 2001, 00:55:33

Название: Запись картинки на сервер через броузер
Отправлено: val от 01 Ноября 2001, 00:55:33
Как затащить на сервер картинку клиента через броузер? Через file сам файл создается, но в него ничего не записывается. Подскажите кто знает как это сделать в Perl.
Название: Запись картинки на сервер через броузер
Отправлено: NAS от 01 Ноября 2001, 00:58:57
http://forums.webscript.ru/showthread.php?s=&threadid=1398
Название: Запись картинки на сервер через броузер
Отправлено: val от 01 Ноября 2001, 02:27:04
Спасибо NAS, я это уже смотрел. 1-й предложенный сценарий не проходит. На строку while (<$in>) сервер отвечает, что это не массив и что не возможно обращаться с таким предложением к неоткрытому failhandle.
А на обращение к zip получаю отсутствие такого сервера.
Название: Запись картинки на сервер через броузер
Отправлено: Wowik от 01 Ноября 2001, 06:34:17
Читай доку по upload...
Там примеры есть (ActivePerl).
Название: strict ?
Отправлено: Green Kakadu от 24 Декабря 2001, 02:18:42
Цитировать
строку while (<$in> ) сервер отвечает, что это не массив и что не возможно обращаться с таким предложением к неоткрытому failhandle.


А у вас включена прагма strict? Такое сообщение выдается при ней, для обхода этого явления в модуле CGI есть новый метод получения дескриптора:

$fh=$obj->upload(\'upfile\');#GET Filehandle

и далее как обычно, только $fh используется в качестве дескриптора.
Название: Запись картинки на сервер через броузер
Отправлено: Боря Елкин от 24 Декабря 2001, 13:10:44
могу предложить ознакомиться с моим вариантом :)
http://webmetr.pips.ru/read/cont/?2
Название: угу
Отправлено: Green Kakadu от 24 Декабря 2001, 13:30:25
Цитировать
могу предложить ознакомиться с моим вариантом

Да неплохо, только если написать вначале скрипта
use strict;
работать не будет, т.к. дескриптор Перлу тогда не понравится ;)
Название: Запись картинки на сервер через броузер
Отправлено: Боря Елкин от 24 Декабря 2001, 16:46:32
Цитировать
Да неплохо, только если написать вначале скрипта
use strict;
работать не будет, т.к. дескриптор Перлу тогда не понравится


Это может быть странно, но после добавления use strict дескриптор ему понравился. ;)
Название: гы-гы
Отправлено: Green Kakadu от 24 Декабря 2001, 23:53:51
Цитировать
но после добавления use strict дескриптор ему понравился.

;) Тут многое зависит от броузера/имени файла, я лишь пересказал доку по CGI, где они сами говорят об этом:

However, there are problems with the dual nature of the upload fields.
If you , then Perl will complain when you try to use a
string as a filehandle.  You can get around this by placing the file
reading code in a block containing the pragma.  More
seriously, it is possible for the remote user to type garbage into the
upload field, in which case what you get from param() is not a
filehandle at all, but a string.

To be safe, use the function (new in version 2.47).  When
called with the name of an upload field, returns a
filehandle, or undef if the parameter is not a valid filehandle.