Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10

Как загрузить временный файл в только что созданную папку с рандомным именем

01.02.2014, 13:08. Показов 2418. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
else
      {
      //Создает папку с именем сесси в папке "upload"
      mkdir('upload/'.session_id(), 777);
      //Перемещает загруженный файл в папку "upload/test"
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/TEST/" . $_FILES ["file"]["name"]);
      //Сообщает об успешном переносе файла "в upload/test"
      echo "Stored in: " . "upload/TEST/" . $_FILES["file"]["name"];
      }
Имеется такой вот код в upload.php. Перед загрузкой файла создается папка с именем сессии (тут все ок).
Дальше,мне нужно переместить временно загруженный файл в папку "upload/созданная папка с именем сессии", как это сделать,точнее что нужно написать после upload в "upload/TEST"? Пытался вместо "TEST" папки написать .session_id() ,но все время ошибки выдает...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.02.2014, 13:08
Ответы с готовыми решениями:

Как создать файл с рандомным именем
На странице сайта есть поле для ввода текста и кнопка, нужно, что бы по нажатию кнопки создавался файл(txt) с рандомным именем, и в котором...

Как создать .bat файл с рандомным именем, используя bat-ник?
Как создать .bat файл с рандомним именем (желательно Bomba_1, Bomba_2, и так далее) используя bat-ник и да чтобы в батнике было написано...

Созданную папку видно только после обновления по F5
Пытаюсь создать папку ПКМ -> Создать ->Новая папка. после этого нечего не происходит, нажимаю F5 папка появляется и так со всеми файлами...

15
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.02.2014, 13:18
Лучший ответ Сообщение было отмечено VladimirK как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
else
{
    //Создает папку с именем сесси в папке "upload"
    mkdir('upload/' . session_id(), 777);
    
    // Куда сохраняем
    $save_to = "upload/" . session_id() . "/" . $_FILES ["file"]["name"];
    
    //Перемещает загруженный файл в папку "upload/test"
    move_uploaded_file( $_FILES["file"]["tmp_name"], $save_to );
    
    //Сообщает об успешном переносе файла "в upload/test"
    echo "Stored in: " . $save_to;
}
1
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
01.02.2014, 13:43  [ТС]
lyod, спасибо тебе ОГРОМНОЕ!
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.02.2014, 13:50
Цитата Сообщение от VladimirK Посмотреть сообщение
спасибо тебе ОГРОМНОЕ
Пожалуйста .
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.02.2014, 13:53
Цитата Сообщение от lyod Посмотреть сообщение
PHP
1
mkdir('upload/' . session_id(), 777);
хотел бы обратить внимание на то, что mkdir требует число в восьмеричной системе счисления. 777 - это число в десятичной системе счисления. При вызове функция не выполнит автоматическое приведение к восьмеричной системе счисления, следовательно, результат непредсказуем. А 0777 в десятичной системе счисления - это 511.. Надо так:
PHP
1
mkdir('upload/' . session_id(), 0777);
2
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.02.2014, 14:11
А я причём? Хотя может и при чём - не доглядел.
0
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
01.02.2014, 22:27  [ТС]
KOPOJI, спасибо,исправил
Осталось еще разобраться,как заставить аплодер переименовать файл после загрузки.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.02.2014, 22:29
а почему не сразу?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir('upload/' . session_id(), 0777);
    
    // Куда сохраняем
    $save_to = './upload/' . session_id() . '/';
    
    //Перемещает загруженный файл в папку "upload/test"
    move_uploaded_file(
        $_FILES["file"]["tmp_name"],
        $save_to . 'file' . date('YmdHis') . mt_rand(100, 999) . '.' . substr($_FILES['file']['type'], 6)
    );
    
    //Сообщает об успешном переносе файла "в upload/test"
    echo "Stored in: " . $save_to;
1
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
01.02.2014, 23:38  [ТС]
KOPOJI, это я так полагаю переименовывает в рандомное имя,такой код я находил в интернете. А мне надо чтобы файл переименовывался скажем в face.jpg (только jpg файлы будут разрешены для загрузки)
Смысл в том,чтобы файл загружался в папку с именем сессии, а сам файл имел всегда одинаковое имя. В конечном итоге загруженное фото будет выводиться в специальном окне с изображением до тех пор,пока пользователь не покинет сайт
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
01.02.2014, 23:40
VladimirK, ну замените на jpg, какая разница-то, в принципе.. Один только минус - не всегда это хорошо (например, здесь, на форуме, может выдать ошибку при загрузке, например, gif-файла с ".jpg" в конце имени файла)
1
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
01.02.2014, 23:50  [ТС]
KOPOJI, все,спасибо огромное,разобрался, работает
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
02.02.2014, 00:02
Цитата Сообщение от VladimirK Посмотреть сообщение
KOPOJI, это я так полагаю переименовывает в рандомное имя,такой код я находил в интернете. А мне надо чтобы файл переименовывался скажем в face.jpg (только jpg файлы будут разрешены для загрузки)
Смысл в том,чтобы файл загружался в папку с именем сессии, а сам файл имел всегда одинаковое имя. В конечном итоге загруженное фото будет выводиться в специальном окне с изображением до тех пор,пока пользователь не покинет сайт
Задачи у тебя, скажу прямо, неординарные. Я тоже использую такие фишки, но для других целей:
1. Есть у меня функция обновления из админки компонента, так вот, система выдает токен, полученный из сессии, которым нужно обозвать архив. Иначе брейк.
2. Для магаза загружаю архивы. Хранятся они бел расширений, но в базе записывается расширение загруженного архива. При выдаче (в ссылке на скачку указано например, 1402021235) в заголовки прописывается тип файла, и на клиентской машине он скачивается, например 1402021235.zip
Рандом я получаю из даты (купирую первые 2 символа года) и прибавляю инкремент всех загрузок этого дня. Повториться имя сможет только через 100 лет.
0
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
02.02.2014, 01:56  [ТС]
Победа была близка,чтобы вообще понять,что и как писать и заставить upload.php создать папку и переименовать,взял простой код c php.net. Получилось. Теперь решил перенести код туда,куда это изначально планировалось и ...ступор пока,пока только удалось заставить создать аплодер папку с именем сессии, как вписывать остальное ,пока загадка)
class.upload.php (c) Colin Verot 2003-2010.
Кликните здесь для просмотра всего текста
PHP
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
<?php
session_start();
 
$action=@$_GET['action'];
 
       //Создать папку с именем сессии.
    $dir = 'media/' . session_id(); 
    if (!file_exists ($dir) ) 
    mkdir ($dir, 0777);
 
switch ($action) {
    case 'upload_thumbnail':
        // Check File Upload - Header Image
        if(!empty($_FILES['file']['name'])){
            $handle1 = new upload($_FILES['file']);
            
            // Check for file size limit of 5MB
            if ($_FILES['file']['size']>(5*1024*1024) || empty($_FILES['file']['size'])) {
                echo "Error: Please upload file with less than 5MB size";
                exit;
            }
            else {
                if($handle1->uploaded) {
                    // resize image
                    $handle1->image_resize   = true;
                    $handle1->image_x        = 250;
                    $handle1->image_ratio_y         = 250;
                    
                    $handle1->process('tmp_files/');
                    $file=$handle1->file_dst_name;
                    echo $file;
                }
                else {
                    echo "Error: Unknown error occured while uploading.\n Please try again";
                    exit;
                }
            }
        }
        else{
            echo "Error: Please select File to upload";
            exit;
        }
 
        break;
 
    case 'upload_webcam':
        file_put_contents("tmp_files/webcam-picture.jpg", pack("H*", $HTTP_RAW_POST_DATA ));
        break;
 
    default:
        break;
}
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
02.02.2014, 02:17
Цитата Сообщение от VladimirK Посмотреть сообщение
Победа была близка,
но наша песня хороша - начинай сначала. Эх, Вова! Опять нужно просить показать ошибки, и все по новой.
0
0 / 0 / 1
Регистрация: 28.01.2014
Сообщений: 10
02.02.2014, 12:40  [ТС]
esculap_ra, да,учится мне еще и учится ,только начал недавно,методом проб и ошибок иду,пытаясь изменить часть кода взятого на разных сайтах по php
Вообще, всем еще раз спасибо,почитал описание к upload'еру Colin Verot, взял за основы то,что вы мне тут все написали и все заработало там,где надо
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
02.02.2014, 17:44
Цитата Сообщение от VladimirK Посмотреть сообщение
почитал описание к upload'еру Colin Verot, взял за основы то,что вы мне тут все написали и все заработало там,где надо
Это еще раз подтверждает, что дорогу осилит идущий! Просто пр возникновении проблемы следует наметить четкий план выявления ошибки, а не пороть горячку (как делают некоторые) наобум внося изменения и в край себя запутывая.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.02.2014, 17:44
Помогаю со студенческими работами здесь

Скопировать файл в созданную папку
Добрый день! Проблемма с копированием файла в созданный каталог (программно) Пример: //создаем папку TDateTime T(Now()); ...

Как загрузить файл в папку assets?
file = new File(&quot;/assets/&quot;,&quot;sagittarius.xml&quot;); При запуске зависает на прогрес-баре. Помогите разобраться package ru.load.file; ...

Как загрузить файл в определенную папку на сервере
Здравствуйте, Возможно ли когда конвертируешь .rpt файл в .pdf, чтобы когда нажать на кнопку &quot;Конвертировать&quot; оно сохранила...

Как после добавления записей в БД сделать перенаправление на только что созданную запись?
Добрый вечер! Подскажите пжл, как после добавления записей в базу данных сделать перенаправление на только что созданную запись? ...

Как загрузить файл в определённую папку при нажатии на кнопку?
Как мне сделать загрузку файлов в определённую папку при нажатии на кнопку? И где это можно сделать в C++ или в C#?


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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 с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru