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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение/загрузка файла CSV из формы 
V
    Опции темы
Олег13
Дата 31.10.2011, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день всем! Посоветуйте как быть. Есть скрипт который читает файл CSV из формы HTML и загружает его содержимое в БД. Скрипт работает, но только у меня локально на моей машине, при переносе этого скрипта на удаленный сервер и при попытке загрузить файл оттуда (а сам файл CSV лежит локально на моем компе) ничего в базу не грузится. Я чувствую, что тут скорее всего проблема с путями которые передаются из HTML формы в скрипт (там передается локальный путь), вот удаленный сервер его и не понимает.   А до меня не доходит, как правильно сделать так , чтобы файл все-таки читался сервером и его содержимое заливалось в БД. Подскажите как быть, какие варианты решения есть? Для наглядности привожу текст своего скрипта:
Код

#!/usr/bin/perl -w
#use strict;
use DBI;
use CGI;
use CGI qw (:standart);
use CGI qw(:cgi);
use CGI::Carp qw(fatalsToBrowser);

my $ps=param('p1');
my $file = param('price');

$ps=~s/\0//g;
$ps=~s/\.\.//g;

if ($ps ne 'passw') {
print "Content-type: text/html\n\n";
print "<html><h1>Неверно введен пароль</h1></html>\n";
exit;
}

if ($file eq '') {
print "Content-type: text/html\n\n";
print "<html><h1>Вы не выбрали файл для загрузки!</h1></html>\n";
exit;
}

open FF, "<$file";
my @n=<FF>;
close FF;

my $dbh=DBI->connect("DBI:mysql:elt", "el", "1234567890") or die "Error: $DBI::errstr\n";
my $sth=$dbh->do("SET NAMES 'cp1251'");

########## Очистака предыдущего наполнения таблицы
$sql="TRUNCATE TABLE price_new";
$sth=$dbh->do($sql);

##########Заливка данных в БД
foreach $i (@n) {
$u=$u+1;
@m=split(";",$i);
my $sql="insert into price_new (category,name,body,producer,price_new,description) values (\'$m[0]\',\'$m[1]\',\'$m[2]\',\'$m[3]\',\'$m[4]\',\'$m[5]\')";
$sth=$dbh->do($sql); 
defined $sth or die $dbh->errstr;
}

$dbh->disconnect;

print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title></title>\n";
print "</head>\n";
print "<body>\n";
print "Все готово!!!\n";
print "$u\n";
print "</body>\n";
print "</html>\n";
 
PM MAIL   Вверх
arto
Дата 31.10.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а каким образом вы передаете файл на сервер?
PM MAIL ICQ   Вверх
ginnie
Дата 31.10.2011, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



Олег13, попробуйте сделать загрузку файла на сервер способом аналогичным указанному в описании CGI.pm:

Код

$lightweight_fh  = $q->upload('field_name');

if (defined $lightweight_fh) {
    my $io_handle = $lightweight_fh->handle;
    my @n=<$io_handle>;
}


Это сообщение отредактировал(а) ginnie - 31.10.2011, 16:01


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Олег13
Дата 31.10.2011, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


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

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


 




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


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

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