[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: чтение данных из файла
JOIN
привет! хочу через форму выбора загрузить файл и считать с него данные в базу.
если использовать ссылку вместо выбора проблем с записью нет. судя результату код не может найти файл, проверить есть ли он в кталоге и открыть его. посоветуйте что делать?



Спустя 2 минуты, 23 секунды (13.07.2009 - 17:07) waldicom написал(а):
Надо подумать

Спустя 10 минут, 41 секунда (13.07.2009 - 17:18) pas написал(а):
JOIN
Не могли бы ли Вы кинуть код, с помощью которого Вы работаете с результатами формы выбора?

Спустя 4 минуты, 59 секунд (13.07.2009 - 17:23) JOIN написал(а):
УЖЕ ДУМАЛ НЕОДНОКРАТНО.
у меня в таб категории напротив них форма для выбора файла. принажатии на кнопку выбрать фиксируется код категории и через ссылку &dob передается в основной код. там проверяется есть ли выбранный файл в каталоге открывается и генерируется запрос. проблемка в обнаруживает себя при проверке файла в каталоге. посоветуйте хоть что-нибудь. пожалуйста
скрипт в файле ad_row.php
HTML
<TD><center><a href="?&del1=<?echo $values[1];?>"><form enctype="multipart/form-data" action="admin3.php?&del1" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000" />
<input class=bluebutton name="filename" type="file" />
<input type="submit" class=bluebutton value="Загрузить" /></a>
</form></center></TD>

скрипт admin3.php
PHP
if ($_REQUEST["del1"])
                        {   
//запись в board
                            
$d=$con1->Execute("SELECT Max(board.ID) FROM board");
                            if (!
$d)  echo "Запись в базу невозможна!";   
                            
$ido=$d->MoveNext();            
                            ++
$ido[0];                          
                            
$timeok=date("d.m.y"); 
                            if(
$_FILES["filename"]["size"] > 1024*1000*1024)
                               {
                                 echo (
"Размер файла превышает 1000 мегабайт");
                                 exit;
                               }
                               if(
copy($_FILES["filename"]["tmp_name"],
                                 
"./FILES/".$_FILES["filename"]["name"]))
                               {
                                 echo(
"Файл успешно загружен <br>");
                                 echo(
"Имя файла: ");
                                 echo(
$_FILES["filename"]["name"]);
                                 echo(
"<br>Размер файла: ");
                                 echo(
$_FILES["filename"]["size"]);
                                 echo(
"<br>Каталог для загрузки: ");
                                 echo(
$_FILES["filename"]["tmp_name"]);
                               } else {
                                  echo(
"Ошибка загрузки файла");
                               }                            
                            if (!
file_exists("./FILES/".$_FILES["filename"]["name"]))
                             {
                                echo 
"<center>Нет данных</center>";
                                return;
                             }
                             
$fp=fopen("./FILES/".$_FILES["filename"]["name"],"r+");                                                                       
                             while (!
feof($fp))
                             {  
                                   
$line=fgets($fp,1024);
                                   
//echo $ido[0]."<BR>";
                                   
$sql_z="INSERT INTO board VALUES(".$_REQUEST["del1"].", $ido[0], '$line', '*', '*', '*', '*', '*', '$timeok', '*')"
                                   if (
strstr($line,"\r\n")) ++$ido[0]; else echo "<center><Font color=red>Данные импортированы в базу</font></center>";                                         
                                  
// echo $sql_z; 
                                   
$r=$con1->Execute($sql_z);
                                   if (!
$r) echo "<br>Невозможно добавить данные в категорию<br>";
                             }                               
                            
fclose($fp);                                                                                  
                        } 
v_eshop($con1);

в функции v_eshop($con1) вызывается ad_row.php:
PHP
function v_eshop($con1)
{    
    
$text_sql="SELECT cat.Name, cat.kod FROM cat ORDER BY kod desc";
    
$command1=new SQLCommand();
    
$command1->SetSQL($text_sql);              
    
//echo $command1->GetSQL();
    
$view1=new db_view($con1);
    
$view1->SetRowsOnPage(10);
    
$view1->SetSQL($command1->GetSQL());     
    include(
"ad_beg3.php");            
    if (
is_bool($view1->Draw("ad_row3.php")))
    {
        echo 
"<tr><td colspan=9><center>Невозможно вывести данные</center</td></tr>";
    }
    else if (
$view1->rows_count<1)
    {
        echo 
"<tr><td colspan=9><center>Нет данных<center></td></tr>";
    }    
    include(
"end.php");    
 }

Спустя 38 минут, 39 секунд (13.07.2009 - 18:02) JOIN написал(а):
хоть что-нибудь скажите ohmy.gif

Спустя 32 секунды (13.07.2009 - 18:02) waldicom написал(а):
что-нибудь.

пысы. Неужели так трудно взять в руки деббагер и посмотреть, куда пишется и где потом ещется.

Спустя 58 секунд (13.07.2009 - 18:03) JOIN написал(а):
полезного имелось ввиду rolleyes.gif

Спустя 1 минута, 50 секунд (13.07.2009 - 18:05) JOIN написал(а):
что может изменить может логика ковыляет. парюсь уже 3 день скоро сдаваться

Спустя 49 секунд (13.07.2009 - 18:06) pas написал(а):
Ну у меня есть следующие версии, но я сейчас не могу их детально проверить:э
1. Попробуйте использовать вместо функции copy() функцию move_uploaded_file()
2. Попробуйте поработать с полными путями
3. Попробуйте писать не
PHP
"./FILES/".$_FILES["filename"]["name"]

а так:
PHP
"FILES/".basename($_FILES["filename"]["name"])


Если каталог FILES находится в том же каталоге, что и скрипт

Спустя 15 минут, 20 секунд (13.07.2009 - 18:21) JOIN написал(а):
с move_uploaded_file работает в моем случае как с copy
дебаггер выдает адрес какими-то шифрами какой-то бред. но переменные для записи в базу берет четко. явная пробл при работе с формой выбора код не может найти файл, проверить есть ли он в кталоге и открыть его ph34r.gif

Спустя 4 минуты (13.07.2009 - 18:25) waldicom написал(а):
Пишу медленно и с выражением.
Если не находит файл, то выведи на экран, в какой папке он его ищет. Андерстенд?

Спустя 21 минута, 40 секунд (13.07.2009 - 18:47) JOIN написал(а):
с "FILES/".basename($_FILES["filename"]["name"]) не вышло тоже
пишет /FILES/ что есть правильно. файлы по коду загружаются туда. проблема в том что эти данные должны передаваться с одной страницы в другую со значением кода категории. код берется а адрес файла кот надо открыть в другой странице программно нет- в этом вся беда. что предринять в данном случае непонятно
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.