За последние 24 часа нас посетил 19141 программист и 1642 робота. Сейчас ищут 876 программистов ...

The filename tt.xls is not readable

Тема в разделе "PHP и базы данных", создана пользователем rodion4657, 20 июн 2012.

  1. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    такая ошибка при попытке парсить файл загруженный на сервер. Если просто скопировать файл вручную(использую Денвер) ошибок при чтении файла не возникает.В чем причина помогите пожалуйста, уже весь интернет облазил ничего конкретного не нашел.
     
  2. freethetan

    freethetan Активный пользователь

    С нами с:
    13 июн 2012
    Сообщения:
    10
    Симпатии:
    0
    Посмотрите артибуты файла или папки где находится файл!
    chmod
     
  3. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    это как?в командной строке chmod (путь к папке)?
     
  4. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Люди, не молчите....
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    выполни в консоле
    man ls
    man chmod

    и ты поймешь как ими пользоваться :)
     
  6. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Я в windows работаю, какая консоль?
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    На сервере Windows?????
     
  8. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    использую денвер
     
  9. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Посмотри что вернет is_readable() и проверь путь имя...
     
  10. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Я уже смотрел, не может прочесть файл...Вы знаете меня больше всего удивляет то, что если тупо скопировать нужный файл, все работает ,парсится без проблем...Если же загружаю с помощью рнр он не читается...и еще такая особенность, что в одну папку ложаться совершенно одинаковые файлы(имя, расширение)
     
  11. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    как на счет регистра?
    там, кстати, точно винда??? можно скриншот для убедительности?
     
  12. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    регистры одинаковые.
    может вам скрипт кинуть?посмотрите?
     
  13. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    кидай, хуже не будет :)
     
  14. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    для парсинга..
    Код (Text):
    1. <?php
    2. $connect = mysql_connect("localhost","rau2","");
    3. $db = mysql_select_db("baza2",$connect) or die(mysql_error());
    4. $filename = 'tt.xls';
    5. if (is_readable($filename)) {
    6.     echo 'Файл доступен для чтения';
    7. } else {
    8.     echo 'Файл недоступен для чтения';
    9. }
    10. require_once ('/Excel/reader.php');
    11. $data = new Spreadsheet_Excel_Reader();
    12. $data->setOutputEncoding('cp1251');
    13. $data->setUTFEncoder('mb');
    14.  
    15. $data->read('tt.xls');
    16. echo '<pre>';   print_r($data->sheets); echo '</pre>';
    17.  
    18. //echo '<pre>';   print_r($data->sheets); echo '</pre>';
    19. error_reporting(E_ALL^ E_NOTICE);
    20. for($j=2; $j<=$data->sheets[0]['numRows']; $j++) // Начинаем выводить данные начиная  со 2 строки
    21. {
    22. for($i=0; $i<=$data->sheets[0]['numCols']; $i++) // Начинаем выводить данные для всех столбцов
    23. {
    24. if(empty($data->sheets[0]['cells'][$j][$i]))
    25. {
    26. $row[] = "'empty'"; // Создаём массив из значений столбцов для каждой строки
    27. }
    28. else
    29. {
    30. $row[] ="'". $data->sheets[0]['cells'][$j][$i]."'"; // Создаём массив из значений столбцов для каждой строки
    31. }
    32. }
    33.     $row = implode(',', $row); // Объединяем массив в строку, для запроса mysql
    34.     $sql = "INSERT INTO t(id, name, old, ves, date)  VALUES ($row)"; // Создаём запрос mysql
    35.     mysql_query("SET NAMES 'cp1251'"); // Устанавливаем кодировку для mysql
    36.    if(!mysql_query($sql)) // Выполняем запрос mysql
    37.    {
    38.    echo 'Error: '.mysql_error();
    39.    }       
    40.    else
    41.    {
    42.    echo 'Запись добавлена!<br>';
    43.    }
    44. unset($row); // Удаляем переменную, чтоб массив со строкой не путался
    45. }
    46. mysql_close($connect);
    47. ?>
    загрузка...
    Код (Text):
    1. <?php
    2.  
    3.  
    4. $uploaddir = 'xls/';
    5. $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    6.  
    7. echo '<pre>';
    8. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    9.     echo "Файл корректен и был успешно загружен.\n";
    10. } else {
    11.     echo "Возможная атака с помощью файловой загрузки!\n";
    12. }
    13.  
    14. echo 'Некоторая отладочная информация:';
    15. print_r($_FILES);
    16.  
    17. print "</pre>";
    18.  
    19. ?>
     
  15. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
    после загрузки выводится "Файл корректен и был успешно загружен."?
    и еще, можно попробовать, сравни файлы на идентичность - исходный, и тот, что ты загрузил через пхп. ну хотябы в тоталкомандере есть такая функция

    прочитай диру через пхп, может там всё-таки есть какие-то различия?
     
  16. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Бдагодарю за советы...нашел в чем проблема(чисто случайно). рассказываю, вдруг кому пригодится т.к. я лично долго не мог решить эту проблему......
    Когда уже не знал, что с этим делать, решил с нуля набрать эти два скрипта (вам я уже прислал рабочие), попробовал, все заработало... начал сравнивать старые и новые скрипты, совпадали они полностью, за исключением одной черты в скрипте загрузки файла на сервер...
    в старом скрипте было так
    Код (Text):
    1. $uploaddir = '/xls';
    в новом так
    Код (Text):
    1. $uploaddir = 'xls/';
    Вывод:одна черточка решает многое....
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    '/xls';
    путь от корня

    'xls';
    путь от текущей папки