Как Laravel решает, где сохранить временные файлы? - PullRequest
0 голосов
/ 02 июля 2018

Я использую эту библиотеку изображений, которая загружает изображения в S3.

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

Моя проблема в том, что при использовании определенных функций временные файлы загружаются в C:\\xampp\\tmp/, а при использовании других функций временный файл загружается в C:\Users\myUser\AppData\Local\Temp.

Мой вопрос: где это решается? и как это настроить?

Я пользуюсь машиной Win10 и почтальоном.

Это функция загрузки изображения на C:\Users\myUser\AppData\Local\Temp:

 * @param Request $request
 *
 * @throws \Spatie\MediaLibrary\Exceptions\FileCannotBeAdded
 */
public function coverPhotoFromRequest( Request $request ) {
  if ( $request->hasFile( 'cover_photo' ) ) {
    $this->clearMediaCollection( 'cover' );
    $this->addMedia( $request->file( 'cover_photo' ) )->toMediaCollection( 'cover' );
  }
}

Эта очень похожая функция загружает временные файлы в C:\\xampp\\tmp/:

/**
 * @helper handles the profile photo from request or link
 *
 * @param mixed $photo
 *
 * @return \Spatie\MediaLibrary\Media
 * @throws \Spatie\MediaLibrary\Exceptions\FileCannotBeAdded
 * @throws \Spatie\MediaLibrary\FileAdder\FileDoesNotExist
 */
public function profilePhoto( $photo = null ) {
  if ( Ut::isUrl( $photo ) ) {
    return $this->clearMediaCollection( 'profile' )->addMediaFromUrl( $request->file( 'profile_photo' ) )->toMediaCollection( 'profile' );
  }

  if ( $photo instanceof UploadedFile ) {
    return $this->clearMediaCollection( 'profile' )->addMedia( $request->file( 'profile_photo' ) )->toMediaCollection( 'profile' );
  }
}

Это путь к проекту:

C:\Users\myUser\Projects\images\api

Проблема в том, что когда я отправляю код на сервер, возникает такая же проблема.

Я проверил файл конфигурации, и у меня есть это:

'temporary_directory_path' => storage_path('medialibrary/temp'),

Но иногда все равно отправляет на /xampp и C:\Users\myUser\AppData\

1 Ответ

0 голосов
/ 02 июля 2018

В библиотеке есть директива config для временного пути 'virtual_directory_path', указанного в документации https://docs.spatie.be/laravel-medialibrary/v7/installation-setup.

Помогает ли настройка?

...