РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
804 of 1392 menu

Метод hashName

Метод hashName применяется к объекту загруженного файла UploadedFile и возвращает строку, содержащую уникальное имя файла, основанное на его содержимом. Этот метод не принимает никаких параметров и автоматически генерирует имя с использованием алгоритма хеширования SHA-1. Полученное имя обычно используется для сохранения файла на сервере, чтобы гарантировать его уникальность.

Синтаксис

<?php $name = $uploadedFile->hashName(); ?>

Пример

Давайте получим уникальное имя для загруженного файла:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateHttpUploadedFile; class FileController extends Controller { public function upload(Request $request) { $file = $request->file('document'); if ($file instanceof UploadedFile) { $hashName = $file->hashName(); echo $hashName; } } } ?>

Результат выполнения кода для файла с именем "photo.jpg":

"e8d5b41d6a8f2c3b9a6e4f7d1c2a3b4c5d6e7f89.jpg"

Пример

Давайте используем hashName для сохранения файла в хранилище Laravel:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesStorage; use IlluminateHttpUploadedFile; class FileController extends Controller { public function store(Request $request) { $file = $request->file('avatar'); if ($file instanceof UploadedFile) { $path = $file->storeAs('avatars', $file->hashName(), 'public'); echo $path; } } } ?>

Результат выполнения кода:

"avatars/9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b1a0f.jpg"

Пример

Давайте сгенерируем имя файла без расширения с помощью дополнительных методов:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateHttpUploadedFile; class FileController extends Controller { public function process(Request $request) { $file = $request->file('document'); if ($file instanceof UploadedFile) { $hash = $file->hashName(); $nameWithoutExt = pathinfo($hash, PATHINFO_FILENAME); echo $nameWithoutExt; } } } ?>

Результат выполнения кода:

"e8d5b41d6a8f2c3b9a6e4f7d1c2a3b4c5d6e7f89"

Пример

Давайте сохраним файл с хешированным именем и проверим, существует ли он:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesStorage; use IlluminateHttpUploadedFile; class FileController extends Controller { public function uploadAndCheck(Request $request) { $file = $request->file('photo'); if ($file instanceof UploadedFile) { $hashName = $file->hashName(); $path = $file->storeAs('photos', $hashName, 'public'); if (Storage::disk('public')->exists('photos/' . $hashName)) { echo "File stored successfully"; } else { echo "File not found"; } } } } ?>

Результат выполнения кода:

"File stored successfully"

Смотрите также

  • метод store,
    который сохраняет загруженный файл в хранилище
  • метод storeAs,
    который сохраняет файл с указанным именем
  • метод getClientOriginalName,
    который возвращает оригинальное имя загруженного файла
  • метод extension,
    который возвращает расширение загруженного файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить