Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с файлами 
:(
    Опции темы
johndes
Дата 19.4.2007, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Здравствуйте, просьба помоч с загрузкой прайс-листа:

Есть какталог price, при принятии файла необходимо удалить из этого каталога все файлы и загрузить туда принимаемый.

Код

#!/usr/bin/perl -w

use strict;
use CGI 'param','upload','uploadInfo';
$CGI::POST_MAX=2048000;

my $price=upload('price');

if (defined $price && $price ne ''){

# Вот здесь не знаю что писать....

}

PM MAIL   Вверх
johndes
Дата 19.4.2007, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Вот этот код создаёт файл размером 480 мегобайт.... чо не правильно...

Код

      my @name= split(/\\/, $price);
      @name= reverse @name;
      my $price_new="../price/$name[0]";
      open A, "+>$price_new";
      binmode A;
      binmode $price;
      my $buf;
      my $bytesread = read($price, $buf, 1024);
      while ($bytesread)
      {
            print A $buf;
      }
      close A;

PM MAIL   Вверх
johndes
Дата 19.4.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Вот эта шиза создаёт пустой файл
Код

      my @name= split(/\\/, $price);
      @name= reverse @name;
      my $price_new="../price/$name[0]";
      open A, "+>$price_new";
      binmode A;
      print A while (<$price>);
      close A;

 smile 
PM MAIL   Вверх
johndes
Дата 19.4.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



Всё разобрался дело в правах на директорию....

Теперь такие вопросы
Как удалить все файлы из папки?
Как прочитать содержимое папки? (название файлов)

PM MAIL   Вверх
korob2001
Дата 19.4.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Модератор: Один топик - один вопрос. Читаем правила форума.

Перед тем, как задавать такие вопросы, воспользуйся поиском.
Удаление каталогов

Там же можешь посмотреть, как получить список файлов, а так же как удалять файлы.

Это сообщение отредактировал(а) korob2001 - 19.4.2007, 09:39


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
johndes
Дата 19.4.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.4.2007

Репутация: нет
Всего: нет



ОК, понял, торопился сильно...

решил вопросы, вот решения если кому интересно

Код

      my @a = <../price/*>;
      unlink(@a);

      my @name= split(/\\/, $price);
      @name= reverse @name;
      @name=split(/\./, @name[0]);
      @name= reverse @name;
      my $price_new="../price/price.$name[0]";
      open A, "+>$price_new";
      binmode A;
      print A while (<$price>);
      close A;

PM MAIL   Вверх
amg
Дата 19.4.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(johndes @ 19.4.2007,  09:41)
Код

      ...
      my @name= split(/\\/, $price);
      @name= reverse @name;
      @name=split(/\./, @name[0]);
      @name= reverse @name;
      my $price_new="../price/price.$name[0]";
      ...

Этот код нужен чтобы получить расширение файла (либо имя, если расширения нет)? Можно проще:
Код

$name = $1 if $price =~ /([^.\\\/]+)$/;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.