За последние 24 часа нас посетили 17565 программистов и 1722 робота. Сейчас ищут 863 программиста ...

Не загружаются файлы на сервер

Тема в разделе "Прочие вопросы по PHP", создана пользователем Миржан, 13 янв 2015.

  1. Миржан

    Миржан Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    4
    Симпатии:
    0
    Все время пишет Во время загрузки файла произошла ошибка
    код
    Код (Text):
    1. <div id='load_form_div'>
    2.     <div class='load_form_title'>ЗАГРУЗИТЬ ФОТО<span id='close'>закрыть</span></div>
    3.     <form id='imageform' method='post' enctype='multipart/form-data' target='hiddenframe' action='func/load_photo.php' onsubmit='hideBtn();'>
    4.         <div id='imageloadstatus'>
    5.         </div>
    6.         <div id='imageloadbutton'>
    7.             <input type='file' id='ava_input' name='ava_input' multiple='true' /><input type='submit' name='upload' id='upload' value='Загрузить' />
    8.         </div>
    9.     </form>
    10.     <iframe id='hiddenframe' name='hiddenframe' style='width:0px; height:0px; border:0px'></iframe>
    11. </div>
    Код (Text):
    1. function hideBtn(){
    2.     $('#imageloadbutton').hide();
    3.     $('#imageloadstatus').html("<img src='img/loader.gif' alt='Uploading....'/>");
    4.     }
    5.  
    6. function handleResponse(mes){
    7.     $('#imageloadbutton').show();
    8.     if (mes.errors != null){
    9.         $('#imageloadstatus').html("Возникли ошибки во время загрузки файла: " + mes.errors);
    10.         }    
    11.     else{
    12.         $('#imageloadstatus').html("Файл " + mes.name + " загружен");    
    13.         }    
    14.     }
    Код (Text):
    1. <?php
    2.     if($_SERVER['REQUEST_METHOD']=='POST'){
    3.         if($_SERVER['SERVER_NAME']=='asd.ru'){
    4.             header('Content-Type: text/html; charset=utf-8');
    5.            
    6.             $nameofpage = basename(__FILE__);
    7.             session_start();
    8.             include("db.php");
    9.            
    10.             if(isset($_POST['upload'])){
    11.                 //Список разрешенных файлов
    12.                 $whitelist = array(".gif", ".jpeg", ".jpg", ".png");        
    13.                 $data = array();
    14.                 $error = true;
    15.                
    16.                 //Проверяем разрешение файла
    17.                 foreach($whitelist as  $item){
    18.                     if(preg_match("/$item\$/i",$_FILES['ava_input']['name'])){$error = false;}
    19.                     }
    20.  
    21.                 //если нет ошибок, грузим файл
    22.                 if(!$error){
    23.                              
    24.                     $folder =  'test/';//директория в которую будет загружен файл
    25.                    
    26.                     $uploadedFile =  $folder.basename($_FILES['ava_input']['name']);
    27.                            
    28.                     if(is_uploaded_file($_FILES['ava_input']['tmp_name'])){
    29.                    
    30.                         if(move_uploaded_file($_FILES['ava_input']['tmp_name'],$uploadedFile)){
    31.                    
    32.                             $data = $_FILES['ava_input'];
    33.                             }
    34.                         else{
    35.                             $data['errors'] = "Во время загрузки файла произошла ошибка";
    36.                             }
    37.                         }
    38.                     else{    
    39.                         $data['errors'] = "Файл не  загружен";
    40.                         }
    41.                     }
    42.                 else{
    43.                     $data['errors'] = 'Вы загружаете запрещенный тип файла';
    44.                     }
    45.                
    46.                
    47.                 //Формируем js-файл    
    48.                 $res = '<script type="text/javascript">';
    49.                 $res .= "var data = new Object;";
    50.                 foreach($data as $key => $value){
    51.                     $res .= 'data.'.$key.' = "'.$value.'";';
    52.                 }
    53.                 $res .= 'window.parent.handleResponse(data);';
    54.                 $res .= "</script>";
    55.                
    56.                 echo $res;
    57.  
    58.                 }
    59.             else{
    60.                 die("ERROR");
    61.                 }
    62.  
    63.             }
    64.         }
    65. ?>
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. Миржан

    Миржан Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    4
    Симпатии:
    0
    не помогло
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Бывает, но освоить за 40 минут отладку и всё перепроверить это круто.
     
  5. Миржан

    Миржан Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    4
    Симпатии:
    0
    если вы не знаете решения думаю лучше промолчать, я уже там был до вашей "помощи"
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    так где программа начинает себя вести не так как хочешь ты?
     
  7. Миржан

    Миржан Новичок

    С нами с:
    13 янв 2015
    Сообщения:
    4
    Симпатии:
    0
    кому интересно проблема решилась указанием полного пути к директории
    Код (Text):
    1. '/var/www/vhosts/looq.kz/httpdocs/test/'.basename($_FILES['ava_input']['name'])
     
  8. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Так это всегда надо делать обязательно! Я вообще относительные пути не использую. Ну только не надо вот так прямолинейно их прописывать!

    В php есть чудеснейшие константы __FILE__ (текущий обрабатываемый файл вместе с путём), __DIR__ (директория, содержащая текущий файл). Потом есть ещё такая прикольная шутка, как $_SERVER["DOCUMENT_ROOT"] - корневая директория сайта (последний нельзя использовать для скриптов, выполняющихся из командной строки).