2013-11-11 2 views
1

Я сделал простую функцию:PHP, как загрузить файл XML на сервер

 


    function get($field, $dir = 'dir/') { 
      $file_tmp = $_FILES[$field]['tmp_name']; 
      $file_name = $_FILES[$field]['name']; 
      $file_size = $_FILES[$field]['size']; 
      $ext = explode(".", $file_name); 
      $ext = $ext[1]; 
      if ($ext != 'xml') { 
       if (is_uploaded_file($file_tmp)) { 
        move_uploaded_file($file_tmp, $dir . $file_name); 
        echo "file: 
         $file_name size: 
         $file_size done ! 
         "; 
       } else { 
        echo "Possible file upload attack: "; 
        echo "filename '" . $file_tmp . "'."; 
       } 
      } else { 
       move_uploaded_file($file_tmp, $dir . $file_name); 
       echo "file: 
         $file_name size: 
         $file_size done ! 
         "; 
      } 
     } 

 

загрузка Функция файлов на сервер (., Например, .jpg, .gif), но когда я пытаюсь выгрузить .xml что-то пойдет не так и файл не загружается. Почему это?

+0

Что означает «не загружать»? Он не отображается в '$ _FILES'? Вы получаете ошибку PHP? Вы получаете ошибку Apache? Вы «делаете», но файл там нет? –

+0

Не могли бы вы рассказать о том, что «что-то» идет не так? – Ruan

+0

Извините ... Да, это сделано, но файл не находится в каталоге. – mcgoo

ответ

0

Попробуйте это так, а затем проверить, что происходит:

function get($field, $dir = 'dir/') 
{ 
    $file_tmp = $_FILES[$field]['tmp_name']; 
    $file_name = $_FILES[$field]['name']; 
    $file_size = $_FILES[$field]['size']; 
    $ext = explode(".", $file_name); 
    $ext = $ext[1]; 

    if ($ext != 'xml') { 
     if (is_uploaded_file($file_tmp)) { 
      move_uploaded_file($file_tmp, $dir . $file_name); 
      echo "file: $file_name size: $file_size done ! "; 
     } else { 
      echo "Possible file upload attack: "; 
      echo "filename '" . $file_tmp . "'."; 
     } 
    } else { 
     if (is_uploaded_file($file_tmp)) { 
      move_uploaded_file($file_tmp, $dir . $file_name); 
      echo "file: $file_name size: $file_size done !"; 
     } else { 
      echo "There was a porblem, check error.log"; 
     } 
    } 
} 

А также, ограничение по умолчанию на WAMP сервер 2MB для загрузки файлов, попробуйте увеличить это значение.

+0

Я получаю: «Была ошибка, проверьте error.log». Является ли проблема serwer? – mcgoo

+1

Вы проверили запись 'error.log' о последней загрузке? – Peon

+0

Я понятия не имею, как я могу проверить это на WAMP serwer ... Я перехожу к «wamp \ logs» и есть «POST /test/index.php HTTP/1.1» 200 1944 ... Является ли это? – mcgoo

Смежные вопросы