Ausw
Moderator | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ну что, никто ниче не сообразил ? а я вот сообразил специяльно для этого случая хак :) (точнее, не чистый хак, а только наброски) правда валит все, как я и говорил - в общую яму. итак, что юзаем: topic.cgi Код: <tr><form name=mt action="$postprog" encType="multipart/form-data" method=post > <input type=hidden name="action" value="addreply"> <input type=hidden name="forum" value="$inforum"> <input type=hidden name="topic" value="$intopic"> <input type=hidden name="previewfirst" value="no"> <input type=hidden name="" value=""> </tr> | Код: <td bgcolor=$miscbackone valign=middle><textarea cols=60 rows=6 wrap="soft" name="inpost">$inpost</textarea> <br> <input name=\"filik\" type=\"file\" size=\"50\" > </td> | здесь все. теперя post.cgi Код: use CGI::Carp "fatalsToBrowser"; # Output errors to browser use CGI qw(:standard); # Saves loads of work $CGI::POST_MAX=1024 * 150; # limit post data $CGI::DISABLE_UPLOADS = 1; # Disable uploads | заменяем 1 на 0 далее.... Код: ##### add the replyto the file. sub addreply { # start routine $url="http://server/files"; $uploadurl="/www/files"; my $filik = param ("filik"); if ($filik =~ /\//) { @array = split(/\//, $filik); $f = pop(@array); } elsif ($filik =~ /\\/) { @array = split(/\\/, $filik); $f = pop(@array);} open (FILE, ">$uploadurl/$f") or mkdir $uploadurl,(0777); chmod(0644, "$uploadurl/$f"); binmode FILE; print FILE while (<$filik>); close FILE | теперь фича работает таким образом -при нажатии кнопки submit - вызывается процедура sub addreply и первым делом закачивается файло, указанное в поле "обзор". а щя надоть ее присобачить в пост $inpost. я вписал сразу перед Димоновой склейкой постов - вот сюда Код: #################### # склеивание постов $inpost = qq~$inpost<p><a href=\"$url/$f\"> <u>Attachment</u></a><br>~; $num = $totalthreadposts-1; ($inmembername_OLD, $topictitle_OLD, $postipaddress_OLD, $inshowemoticons_OLD, $inshowsignature_OLD, $currenttime_OLD, $inpost_OLD) = split (/\|/, $allmessages[$num]); chomp ($inpost_OLD); | ну вот и все вроде бы. щас закину куданить, в наглядном представлении покажу. :) Добавлено а вот и пример в действии. конешно, это еще не финал, нужно прикрутить ограничения размера, а так же желательно отключить приаттачивание гуестам, а то мало ли какой умник вареза в гигабайт нальет лол. :gigi: можете зайти проверить, тока залить ниче не выйдет, лол, по вышеописанным причиная я сбил пермишшены на post.cgi :)
| Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 17:14 24-03-2002 | Исправлено: Ausw, 17:16 24-03-2002 |
|