The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Передать файл в скрипт Perl"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 13:17  (MSK)
Отправляю из формы методом POST ... multipart/... картинку .JPG (100K)

<form action="insert.cgi" enctype="mutlipart/form-data" method="post">
<input type=file size=70 name='file'>

Вроде как отправляется судя по времени/траффику
В скрипте использую такую вещь:

use DBI;
use CGI qw(param);

$file=param("file");

В результате в переменной $file приходит путь к файлу со стороны клиента без слешей например: (C:Мои ДокументыВяся.jpg)

Как файл-то сам зацепить?

Спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Передать файл в скрипт Perl"
Сообщение от denn emailИскать по авторуВ закладки(??) on 21-Мрт-05, 13:44  (MSK)
>Отправляю из формы методом POST ... multipart/... картинку .JPG (100K)
>
><form action="insert.cgi" enctype="mutlipart/form-data" method="post">
><input type=file size=70 name='file'>
>
>Вроде как отправляется судя по времени/траффику
>В скрипте использую такую вещь:
>
>use DBI;
>use CGI qw(param);
>
>$file=param("file");
>
>В результате в переменной $file приходит путь к файлу со стороны клиента
>без слешей например: (C:Мои ДокументыВяся.jpg)
>
>Как файл-то сам зацепить?
>
>Спасибо.
слеша отзеркаль \

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 14:45  (MSK)
При отправке они уже такие "\", кнопка "Обзор" сама их ставит.
Отправляю "C:\Мои Документы\Вяся.jpg" - скрипт вместо файла берёт строку "C:Мои ДокументыВяся.jpg"
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Передать файл в скрипт Perl"
Сообщение от denn emailИскать по авторуВ закладки(??) on 21-Мрт-05, 15:08  (MSK)
>При отправке они уже такие "\", кнопка "Обзор" сама их ставит.
>Отправляю "C:\Мои Документы\Вяся.jpg" - скрипт вместо файла берёт строку "C:Мои ДокументыВяся.jpg"

обработай как \\

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 15:38  (MSK)
>обработай как \\

Мне не нужен путь на клиенте, мне нужен путь на сервере, откуда я его могу взять.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Передать файл в скрипт Perl"
Сообщение от konst emailИскать по авторуВ закладки(??) on 21-Мрт-05, 16:16  (MSK)
>Отправляю из формы методом POST ... multipart/... картинку .JPG (100K)
>
><form action="insert.cgi" enctype="mutlipart/form-data" method="post">
><input type=file size=70 name='file'>
>
>Вроде как отправляется судя по времени/траффику
>В скрипте использую такую вещь:
>
>use DBI;
>use CGI qw(param);
>
>$file=param("file");
>
>В результате в переменной $file приходит путь к файлу со стороны клиента
>без слешей например: (C:Мои ДокументыВяся.jpg)
>
>Как файл-то сам зацепить?
>
>Спасибо.
типа так:
# положим файл на сервер
    open(FN,">$fn_post");
    binmode (FN);
    $up_file = $query->param('fn');
    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf }
    close(FN);
# откроем файл и делаем что хошь

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 17:43  (MSK)
>>Отправляю из формы методом POST ... multipart/... картинку .JPG (100K)
>>
>><form action="insert.cgi" enctype="mutlipart/form-data" method="post">
>><input type=file size=70 name='file'>
>>
>>Вроде как отправляется судя по времени/траффику
>>В скрипте использую такую вещь:
>>
>>use DBI;
>>use CGI qw(param);
>>
>>$file=param("file");
>>
>>В результате в переменной $file приходит путь к файлу со стороны клиента
>>без слешей например: (C:Мои ДокументыВяся.jpg)
>>
>>Как файл-то сам зацепить?
>>
>>Спасибо.
>типа так:
># положим файл на сервер
>    open(FN,">$fn_post");
>    binmode (FN);
>    $up_file = $query->param('fn');
>    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf
>}
>    close(FN);
># откроем файл и делаем что хошь

Ошибка:
Can't call method "param" on an undefined value at /usr/www/htdocs/fiat.rags.ru/insert.cgi line 31.

31 $up_file = $query->param('file');

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Передать файл в скрипт Perl"
Сообщение от konst emailИскать по авторуВ закладки(??) on 21-Мрт-05, 17:58  (MSK)

>
>Ошибка:
>Can't call method "param" on an undefined value at /usr/www/htdocs/fiat.rags.ru/insert.cgi line 31.
>
>
>31 $up_file = $query->param('file');


use CGI qw(param);
use CGI;
$query=new CGI;

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Передать файл в скрипт Perl"
Сообщение от co6aka Искать по авторуВ закладки(??) on 21-Мрт-05, 19:52  (MSK)
У меня нет загрузки файлов, но

use CGI qw(: standard escapeHTML escape )

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 19:57  (MSK)
>use CGI qw(param);
>use CGI;
уже есть

>$query=new CGI;
попробую

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 20:29  (MSK)
>>use CGI qw(param);
>>use CGI;
>уже есть
>
>>$query=new CGI;
>попробую


Ошибка ушла, но где этот файл искать - непонятно...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Передать файл в скрипт Perl"
Сообщение от konst emailИскать по авторуВ закладки(??) on 21-Мрт-05, 20:41  (MSK)
>>>use CGI qw(param);
>>>use CGI;
>>уже есть
>>
>>>$query=new CGI;
>>попробую
>
>
>Ошибка ушла, но где этот файл искать - непонятно...


типа так:
# положим файл на сервер
$fn_post = "/tmp/testtttt"; # там и искать :)
    open(FN,">$fn_post");
    binmode (FN);
# вместо 'fn' свой парметр: 'file' param('file');
    $up_file = $query->param('fn');
    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf }
    close(FN);
# откроем файл и делаем что хошь
open (FFF,"/tmp/testtt");
while (<F>) { print; }

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 21:12  (MSK)
>>>>use CGI qw(param);
>>>>use CGI;
>>>уже есть
>>>
>>>>$query=new CGI;
>>>попробую
>>
>>
>>Ошибка ушла, но где этот файл искать - непонятно...
>
>
>типа так:
># положим файл на сервер
>$fn_post = "/tmp/testtttt"; # там и искать :)
>    open(FN,">$fn_post");
>    binmode (FN);
># вместо 'fn' свой парметр: 'file' param('file');
>    $up_file = $query->param('fn');
>    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf
>}
>    close(FN);
># откроем файл и делаем что хошь
>open (FFF,"/tmp/testtt");
>while (<F>) { print; }

Возникает файл нулевой длинны. :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Передать файл в скрипт Perl"
Сообщение от konst emailИскать по авторуВ закладки(??) on 21-Мрт-05, 21:35  (MSK)
>>>>>use CGI qw(param);
>>>>>use CGI;
>>>>уже есть
>>>>
>>>>>$query=new CGI;
>>>>попробую
>>>
>>>
>>>Ошибка ушла, но где этот файл искать - непонятно...
>>
>>
>>типа так:
>># положим файл на сервер
>>$fn_post = "/tmp/testtttt"; # там и искать :)
>>    open(FN,">$fn_post");
>>    binmode (FN);
>># вместо 'fn' свой парметр: 'file' param('file');
>>    $up_file = $query->param('fn');
>>    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf
>>}
>>    close(FN);
>># откроем файл и делаем что хошь
>>open (FFF,"/tmp/testtt");
>>while (<F>) { print; }
>
>Возникает файл нулевой длинны. :(

$up_file = $query->param('file'); # ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 21-Мрт-05, 22:34  (MSK)
>>>>>>use CGI qw(param);
>>>>>>use CGI;
>>>>>уже есть
>>>>>
>>>>>>$query=new CGI;
>>>>>попробую
>>>>
>>>>
>>>>Ошибка ушла, но где этот файл искать - непонятно...
>>>
>>>
>>>типа так:
>>># положим файл на сервер
>>>$fn_post = "/tmp/testtttt"; # там и искать :)
>>>    open(FN,">$fn_post");
>>>    binmode (FN);
>>># вместо 'fn' свой парметр: 'file' param('file');
>>>    $up_file = $query->param('fn');
>>>    while ($bytesread = read($up_file,$buf,2096)) { print FN $buf
>>>}
>>>    close(FN);
>>># откроем файл и делаем что хошь
>>>open (FFF,"/tmp/testtt");
>>>while (<F>) { print; }
>>
>>Возникает файл нулевой длинны. :(
>
>$up_file = $query->param('file'); # ?

Разобрался.. :)
А как сгенерировать нормальное tmp-имя? 3a4d4fjs4ghfg5d6

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 22-Мрт-05, 09:48  (MSK)
>А как сгенерировать нормальное tmp-имя? 3a4d4fjs4ghfg5d6

Use POSIX qw(tmpnam);
$tmpnam=tmpnam();

проще пареной репы!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "Передать файл в скрипт Perl"
Сообщение от Aleg Искать по авторуВ закладки on 22-Мрт-05, 16:57  (MSK)
Последний вопрос :)

Как отсечь по размеру до начала загрузки?
Пропускать только >0 and < 100000

Спасибо большое всем за терпение!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "Передать файл в скрипт Perl"
Сообщение от konst emailИскать по авторуВ закладки(??) on 22-Мрт-05, 17:35  (MSK)
>Последний вопрос :)
>
>Как отсечь по размеру до начала загрузки?
>Пропускать только >0 and < 100000
>
>Спасибо большое всем за терпение!
Вероятно так:
$max = 100000;
$bytes = 1000;
while ($bytesread = read($up_file,$buf,$bytes)) {
++$i;
if ( ($i*$bytes) > $max) { last; }
print FN $buf

}

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру