За последние 24 часа нас посетили 22815 программистов и 1260 роботов. Сейчас ищут 776 программистов ...

Не могу скачать созданный файл.

Тема в разделе "PHP для новичков", создана пользователем kot_k_k, 18 авг 2014.

  1. kot_k_k

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

    С нами с:
    22 июл 2014
    Сообщения:
    46
    Симпатии:
    1
    в php получаю внешние данные, создаю Excel файл на сервере, выдаю на него ссылку - при нажатии на ссылку получаю 404 Page not found.
    Если запустить процедуру удаления этого файла по ссылке - файл удаляется.
    Права выдал 0777.
    По фтп - скачивается без проблем, где грабли.
    На localhost - скачивало без проблем, видимо какие-то еще настройки могут быть о которых не знаю.
    Может из-за того что создание файла и формирование в одном php?
    Вот код.
    Код (Text):
    1.  
    2. <?php
    3. /* получаем период  */
    4. $date_start =$_REQUEST['DATE_S'];  
    5. $date_finish =$_REQUEST['DATE_F'];
    6. $str_name_file_O="Отчет_без_ORDERSP_с_".$date_start."_по_".$date_finish.".xls";
    7. $str_name_file_R="Отчет_без_RECADV_с_".$date_start."_по_".$date_finish.".xls";
    8. .....
    9. // формируем файл
    10. $str_SQL="select t.FK,t.Регион, t.City, t.Street,t.Name_Supl,t.INN,t.vardocnum, t.varDeliveryDate
    11.   from temp_table_Order t inner join temp_table_Ordersp o
    12.             on t.varDocNum=o.varORDNum and t.varBuyer=o.varBuyer and t.varSupplier=o.varSupplier";//" limit 0,30" ;
    13. $sql=mysql_query($str_SQL,$db_1);
    14. $err_=mysql_error($db_1);
    15.      // в Ексель  
    16. excel_import_my($date_start,$date_finish,$sql,$str_name_file_R,2);
    17.  
    18. // ссылки
    19. chmod($str_name_file_O,0777);  
    20. chmod($str_name_file_R,0777);
    21. echo ('<a href="'.$str_name_file_O.'">'.$str_name_file_O.'</a>');
    22. echo("<p>...</p>");
    23. echo ('<a href="'.$str_name_file_R.'">'.$str_name_file_R.'</a>');  
    24. echo("<p>Excel при открытии будет ругаться на формат файла - это он привередничает. </p>");
    25.  
    26. // кнопочка для удаления файлов.
    27. ?>
    28. <html>
    29. <head>
    30. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    31. <title>Удалите файлы</title>
    32. </head>
    33. <body>
    34. <form action="LD_del.php" method="post">
    35. <input name="Q1" type="hidden" value="<?php echo "$str_name_file_O"; ?>" />
    36. <input name="Q2" type="hidden" value="<?php echo "$str_name_file_R"; ?>" />
    37. <input type="submit" value="Удалить." />
    38. </form>
    39. </body>
    40. </html>
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    ссылка неправильная, судя по всему. для <a href> подготовь не просто имя файла, а абсолютный URL — от корня сайта. и, я тебя умоляю, без русских букв!
    типа "/files/feked_report_on_2014-08-20.xls"
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. <?php
    2. function функция($строка,array $массив=array('ноль'=>0,'один'=>1)) {
    3.     if(isset($массив[$строка])) {
    4.         return $массив[$строка];
    5.     }
    6. }
    7. echo функция('один'), $яНоваяПеременная=' Я новая переменная!'; //1 Я новая переменная!  
    :D
    блин это корка ппц...
    Сидел тоже как - то страдал. :)
    Написал мини проект хД. База вся русская, все колонки и т.д. Это ЛОЛ был!
    Ну хз..., не как - то англ. свежее выглядит. =)
    Так смешанный варик получится.
    Лучше конечно на одном писать, на родном как бэ. =)
     
  4. kot_k_k

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

    С нами с:
    22 июл 2014
    Сообщения:
    46
    Симпатии:
    1
    Спасибо - как-то забыл про кириллицу.
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    сайт.php:
    Код (PHP):
    1. <?php
    2. abstract class Сайт {
    3.     private static $доступность=true,
    4.     $методы=[
    5.         'get',
    6.         'post',
    7.         'server',
    8.         'sess'
    9.     ],
    10.     $сохраняемМетод='',
    11.     $метод=[];
    12.     public static function консоль($переменная) {
    13.         echo'<pre>',print_r($переменная,true).'</pre>';
    14.     }
    15.     public static function доступность() {
    16.         return self::$доступность;
    17.     }
    18.     public static function изменитьДоступность($доступность=false) {
    19.         if(is_bool($доступность)) {
    20.             self::$доступность=$доступность;
    21.         }
    22.     }
    23.     public static function мeтод($метод) {
    24.         if(isset(self::$сохраняемМетод[$метод])) {
    25.             return self::$сохраняемМетод[$метод];
    26.         } else {
    27.             $массивМетода=explode(':',$метод,2);
    28.             if(in_array($массивМетода[0],self::$методы)) {
    29.                 $массивМетода[0]='sess'==$массивМетода[0]?'session':$массивМетода[0];
    30.                 $проверкаМетода='$_'.strtoupper($массивМетода[0])."['".$массивМетода[1]."']";
    31.                 $возвращаемМетод=eval('return isset('.$проверкаМетода.')?'.$проверкаМетода.':"";');
    32.                 self::$сохраняемМетод[$метод]=$возвращаемМетод;
    33.                 return $возвращаемМетод;
    34.             }
    35.         }
    36.     }
    37. }
    индекс.php:
    Код (PHP):
    1. <?php
    2. function русскийФайл($русскийФайл) {
    3.     if($русскийФайл) {
    4.         return iconv('utf-8','windows-1251',$русскийФайл);
    5.     }
    6. } 
    7. define('РАЗДЕЛИТЕЛЬ',DIRECTORY_SEPARATOR);
    8. define('ДИРЕКТОРИЯ',__DIR__.РАЗДЕЛИТЕЛЬ);
    9. $формат='php';
    10. $загрузчикКлассов=array(
    11.     'сайт',
    12. );
    13. foreach($загрузчикКлассов as $названиеКласса) {
    14.     $путьДоКласса=ДИРЕКТОРИЯ.русскийФайл($названиеКласса).'.'.$формат;
    15.     if(is_file($путьДоКласса)) {
    16.         require_once $путьДоКласса;
    17.     }
    18. }
    19. //Сайт::изменитьДоступность(); // закрываем доступ
    20. if(Сайт::доступность()) {
    21.     if(Сайт::мeтод('get:лошадка')) { // site.ru/?лошадка=пони
    22.         echo Сайт::мeтод('get:лошадка'); //пони
    23.     }
    24. } else {
    25.     echo'Нет доступа к сайту';
    26. } 
    LOL!!!