Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 38

Загрузка файлов

16.06.2014, 17:26. Показов 1919. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Надо загрузить файл через фору, при этом создать новую папку и переместить его туда. Файлы должны сохраняться в папку UPLOADS и ее подпапки, например: /uploads/2014/06/14/тут файл. У меня получается создать только только один уровень, например, /uploads/2014-06-5/и уже тут файл. Подскажите, как сделать, чтобы в папке uploads при загрузке файла создавалась папка 2014 в ней папка 06(месяц), далее папка 16(день) и уже в эту папку помещался загруженный файл. Помогите или подскажите, где почитать, если не трудно. Вот код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<form enctype="multipart/form-data" action="" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
 <div>Выбрать файл: <input type="file" name="uploadfile"></div>
 <div><input type="submit" name="submit" value="Отправить"></div>
</form>
 
<?
echo '<pre>';
print_r($_FILES);
echo '<pre>';
 
//проверяем загрузку файла на наличие ошибок
if($_FILES['uploadfile']['error'] > 0){
      switch ($_FILES['uploadfile']['error']){
         case 1: echo 'Размер файла превышает допустимое значение UPLOAD_MAX_FILE_SIZE'; break;
         case 2: echo 'Размер файла превышает допустимое значение MAX_FILE_SIZE'; break;
         case 3: echo 'Не удалось загрузить часть файла'; break;
         case 4: echo 'Файл не был загружен'; break;
         case 6: echo 'Отсутствует временная папка.'; break;
        case 7: echo 'Не удалось записать файл на диск.'; break;
        case 8: echo 'PHP-расширение остановило загрузку файла.'; break;
      }
 exit;
}
 $extension = pathinfo($_FILES['uploadfile']['name'], PATHINFO_EXTENSION);
 
 if ($extension == odt || $extension == txt || $extension == doc || $extension == odtx  ){
    //echo 'все ок';
    
 } else {
    echo 'Ошибка! Вы можете загружать файлы только форматов doc, docx, odt!';
    exit;
  }
 
 $date = date('Y-m-g-h-i-s');
 $newdir = mkdir("uploads/$date");
 
//папка для загрузки
$uploaddir = 'uploads/';
//новое сгенерированное имя файла
$newFileName = date('Y-m-h-i-s').'.'.$extension;
//путь к файлу (папка.файл)
$uploadfile = $uploaddir.$newFileName;
 
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)){
    echo "Выбранный файл загружен.\n";
 
    }
else{ 
    echo "Ошибка загрузки файла.\n";
}
 
?>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.06.2014, 17:26
Ответы с готовыми решениями:

Загрузка файлов
Почему текстовые файлы загружаются, а изображения не загружаются? &lt;pre&gt; &lt;?php if($_SERVER=='POST'){ print_r($_FILES); ...

Загрузка файлов.
Суть проблемы такова: файл не проходит проверку на соответствие расширению, в том что загружаю файл соответствующего расширения, сомнений...

Загрузка файлов
Доброго времени суток. Подскажите, как можно изменить данный скрипт, чтобы при загрузке картинок у каждого файла были имена 1.jpg, 2.jpg и...

4
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
16.06.2014, 17:36
Цитата Сообщение от benny Посмотреть сообщение
PHP
1
2
$date = date('Y-m-g-h-i-s');
 $newdir = mkdir("uploads/$date");
->
PHP
1
2
3
4
5
6
7
8
9
10
$Y = date('Y');
$m = date('m');
$d = date('d');
if(!is_dir("uploads/$Y"))
  mkdir("uploads/$Y");
if(!is_dir("uploads/$Y/$m"))
  mkdir("uploads/$Y/$m");
if(!is_dir("uploads/$Y/$m/$d"))
  mkdir("uploads/$Y/$m/$d");
$uploaddir = "uploads/$Y/$m/$d";
Как то так
0
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 38
16.06.2014, 17:55  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
Код PHP
1
2
3
4
5
6
7
8
9
10
$Y = date('Y');
$m = date('m');
$d = date('d');
if(!is_dir("uploads/$Y"))
* mkdir("uploads/$Y");
if(!is_dir("uploads/$Y/$m"))
* mkdir("uploads/$Y/$m");
if(!is_dir("uploads/$Y/$m/$d"))
* mkdir("uploads/$Y/$m/$d");
$uploaddir = "uploads/$Y/$m/$d";
Как то так
Да, спс, папки создаются. единственно косяк в том, что файл помещается в папку (месяц) и к имени файла добавляется название папки день (162014-06-05-51-20)
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
16.06.2014, 17:57
Лучший ответ Сообщение было отмечено benny как решение

Решение

Слеш добавьте
Цитата Сообщение от Vas-e-na Посмотреть сообщение
$uploaddir = "uploads/$Y/$m/$d/";
1
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 38
16.06.2014, 18:22  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
Слеш добавьте
Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2014, 18:22
Помогаю со студенческими работами здесь

Загрузка файлов
Здравствуйте. Хочу сделать загрузку файлов на сервер, чтобы при загрузке ссылка на файл записывалась в базу mysql_query(&quot;INSERT INTO...

Загрузка файлов
Обьясните почему я не могу загрузить файл больше 2 или 5 мег. ??? пишет ошибку ... если мах-сайз стоит 8 и в php.ini тоже стоит 8 м. ...

Загрузка файлов
Доброго всем времени суток! Есть у меня два сайта. Один(главный сайт) на обычном хостинге, второй(файловый) на отдельном сервере. ...

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

загрузка файлов
у меня стоит ubuntu server 10.04.....c сервером LAMP..... попытался создать скипт для загрузки файлов...вот он: &lt;?php if(...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru