
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.06.2005, 19:59
|
|||
|---|---|---|---|
(Perl) Не пойму в чем может быть ошибка??? |
|||
|
#18+
Делаю аплод файла, аплодится успешно, имя файла определяю так: автор my $req = new CGI; my $file = $req->param("upload_file"); my $fileName = $file; $fileName =~ s/.*(\/|\\)(.+)\.(zip|rar|jpg|gif)/$2\.$3/g; print "|$fileName|"; После этого кода на экран выводится вот что: |test.jpg| Далее у меня код: автор my $zip = Archive::Zip->new(); my $member = $zip->addString( $link_text, 'ReadMe.txt' ); $member->desiredCompressionMethod( COMPRESSION_STORED ); $member = $zip->addFile( $fileName ); die 'Arhive::ZIP: write error' unless $zip->writeToFileNamed( "sdf.zip" ) == AZ_OK; и вот он ошибочен... Причем, если делаю вот так: автор my $zip = Archive::Zip->new(); my $member = $zip->addString( $link_text, 'ReadMe.txt' ); $member->desiredCompressionMethod( COMPRESSION_STORED ); $fileName = "test.jpg"; $member = $zip->addFile( $fileName ); die 'Arhive::ZIP: write error' unless $zip->writeToFileNamed( "sdf.zip" ) == AZ_OK; то всё проходит отлично.. но почему? Что ему не нравится в строке $fileName? Неужели там есть какие-то невидимые символы? Как можно удалить все кроме "видимых"? Уже совсем не понимаю в чем тут может быть дело, почему код: автор open ( OUTFILE, ">$fileName" ); binmode ( OUTFILE ); while ( my $bytesread = read( $file, my $buffer, 1024 ) ) { print OUTFILE $buffer; } close ( OUTFILE ); свободно сохраняет в файл с именем $fileName а СРАЗУ же после этого кода я пытаюсь заархивировать этот файл и он не может этого сделать, почему? Почему смог сохранить, но ошибка при открытии через addFile ?? причем, если я присваиваю напрямую имя файла то всё хорошо.... чет тут не чисто :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2005, 20:04
|
|||
|---|---|---|---|
(Perl) Не пойму в чем может быть ошибка??? |
|||
|
#18+
Причем файл test.jpg реально существует в текущей директории... в чем тут трабла ума не приложу.... вроде print $fileName; выводит: test.jpg но ошибка появляется, указывающая на строку addFile: авторSoftware error: Arhive::ZIP: write error at F:/WWW/home/localhost/cgi-bin/work/FileUploaderXP/upload.cgi line 57 но если print $fileName; заменить на такое: $fileName = "test.jpg"; то всё проходит отлично.... я в ауте от безнадежности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2005, 20:26
|
|||
|---|---|---|---|
|
|||
(Perl) Не пойму в чем может быть ошибка??? |
|||
|
#18+
Кое чего уже добился.. фильтрую переменную $fileName так: $fileName =~ tr/a-zA-Z /a-zA-Z/d; и вроде даже сработало! Случаем не подскажете как отредактировать эту строку так, чтобы из $fileName НЕ удалялись цифры и точки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.06.2005, 21:46
|
|||
|---|---|---|---|
(Perl) Не пойму в чем может быть ошибка??? |
|||
|
#18+
во первЫх пользуйся для этого Код: plaintext 1. File::Basename и твои волосы будут... просто будут, как миниимум. А по поводу последнего вопроса s{[^\w.]}{}sg; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=23&tablet=1&tid=1478071]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 435ms |

| 0 / 0 |
