Чтение файла в строку

#
Чтение файла в строку
Читаю файл размером 392 килобайта, но реально загружается только 8 килобайт. В чем дело и как поправить??
<?php
   $tmpdir = CMS_FOLDER . "tmp/";
   $xml_file = $tmpdir . $_FILES['userfile']['name'];
   echo "Файл успешно загружен. - " . $xml_file . "<br/>-------------------------";
   echo "<div>Исходный XML файл</div>-------------------------";
   $xml = $File->GetFileContent($xml_file);
   $xml = $kernel->Utf8ToWindows1251($xml);
   echo "<div style=\"color:blue\">" . htmlspecialchars($xml) . "</div>";
?>
Модератор
#
Re: Чтение файла в строку
1. А каким образом файл попадает в CMS_FOLDER . "tmp/" ?
2. Думаю
   $tmpdir = CMS_FOLDER . "tmp/";
   $xml_file = $tmpdir . $_FILES['userfile']['name'];
может содержать уязвимость, позволяя прочитать любой файл сайта.
3. попробуйте прочитать просто методом http://ru.php.net/manual/en/function.file-get-contents.php
#
Re: Чтение файла в строку
файл попадает через форму загрузки, в общем я решил вопрос так:
...
if(isset($_POST[$submit]))
{
   $tmpdir = CMS_FOLDER . TMP_DIR;
   if (move_uploaded_file($_FILES['userfile']['tmp_name'], $tmpdir . $_FILES['userfile']['name']))
   {
      // Формируем массивы для импорта
      // Считываем данные из XML файла в переменную
      $xml_file = $tmpdir . $_FILES['userfile']['name'];
      $xml = "";
      
      $handle = fopen($xml_file, 'rb');
      while (!feof($handle))
      {
         // Запись данных в переменную с преобразованием кодировки UTF-8 => WINDOWS-1251 блоками по 8 Кб
         $xml .= $kernel->Utf8ToWindows1251(fread($handle, 8192));
      }
      fclose($handle);
...
Авторизация