Переименование файла перед загрузкой в ​​цифровое пространство океана с использованием laravel

Для загрузки файла я использую

Storage::disk('spaces')->putFile('uploads', $request->file, 'public');

Файл успешно сохранен на цифровых океанских просторах. Но я хочу переименовать его в нечто подобное user_1_some_random_string.jpg, А потом сохрани это.

Как мне это сделать?

2 ответа

move Метод может использоваться для переименования или перемещения существующего файла в новое место:Storage::move('hodor/oldfile-name.jpg', 'hodor/newfile-name.jpg');

Также: если вы не хотите, чтобы имя файла автоматически присваивалось вашему сохраненному файлу, вы можете использовать метод storeAs, который получает путь, имя файла и (необязательно) диск в качестве аргументов:

$path = $request->file('avatar')->storeAs(
    'avatars', $request->user()->id
);

Подробнее: https://laravel.com/docs/5.6/filesystem

Попробуйте использовать rand()

$ext  = $request->file('file')->getClientOriginalExtension();
$name = rand(11111,99999).'.'.$ext;
Storage::disk('spaces')->putFile('uploads', $name, 'public');

Это довольно давно, но я нашел ответ для тех, кто все еще ищет.

Вам нужно использовать метод putFileAs, насколько я понимаю

  1. первый параметр - это ведро / местоположение. Я протестировал это, и он создаст новую папку, если вы используете 'uploads / testz', он создал 'testz' в папке загрузок на пробелах.

  2. второй параметр - объект файла запроса, в моем случае $request->file('file')

  3. третий параметр - это имя файла, под которым вы ХОТИТЕ сохранить файл. Я тестировал, и если вы 'testz /', он создаст ту же папку, что и в параметре 1, который подсказывает мне, что метод concats param 1 и 3. Итак, полный фрагмент в моем контроллере

     public function create(Request $request){ Storage::disk('spaces')->putFileAs('uploads/testz', $request->file('file'), 'mychosenfilename.mydesiredextension');
     return redirect()->back();}
    
Другие вопросы по тегам