2016-08-05 2 views
0

Я основываюсь на простой системе загрузки, ниже у меня есть часть системы загрузки кода и листинга. Итак, у меня есть каталог, все перечисленные файлы перечислены, но когда пользователь нажимает кнопку загрузки, он не работает, плюс тот факт, что код, отображающий размер, показывает 0, но файл загружается.PHP Загруженные файлы Получение ошибки

Я выяснил, загружены ли файлы в мой корневой каталог, он полностью работоспособен. И когда я меняю каталог на корневой каталог, файлы отображаются, а размер и загружаемая часть работают нормально.

Загрузить код системы

if(isset($_FILES['image'])){ 
    $errors= array(); 
    $file_name = $_FILES['image']['name']; 
    $file_size =$_FILES['image']['size']; 
    $file_tmp =$_FILES['image']['tmp_name']; 
    $file_type=$_FILES['image']['type']; 
    $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); 


    $extensions= array("jpeg","jpg","png", "gif"); 

    if(in_array($file_ext,$extensions)=== false){ 
    $errors[]="extension not allowed, please choose a JPEG, PNG, or GIF file."; 
    } 

    if(empty($errors)==true){ 
     move_uploaded_file($file_tmp, "dir/.$file_name"); 
    }else{ 
    print_r($errors); 
    } 

}

Извлечение загруженных файлов на код:

 $resource = opendir("dir/."); 

     while (($entry = readdir($resource)) != false) { 
     $download = '<a href="' . $entry . '"> Download </a> '; 

     if ($entry != '.' && $entry != '..') { 
      echo "<tr> <td>" . $entry . "</td> <td>" . formatSizeUnits(filesize($entry)) . "</td> <td> $download </td></tr>"; 
     } 
    } 
+0

Вы проверили разрешения? – msantos

+0

Вы также можете удалить точку из файла move_uploaded_file ($ file_tmp, "dir /.$ file_name") и использовать это: move_uploaded_file ($ file_tmp, "dir/$ file_name"). Проверьте, работает ли он. – msantos

ответ

0

readdir() не возвращает полный путь к файлам, которые он находит, буквально только их имя. Поскольку вы открыли dir/ в качестве исходного каталога, вы получаете somefile.txt, а не dir/somefile.txt, что означает, что ваш файл не работает, потому что он смотрит не в ту сторону. Это не 0 bytes, это логическое ЛОЖЬ, отлитое от целого 0.

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