首页 > 解决方案 > Laravel 如何决定保存临时文件的位置?

问题描述

我正在使用这个将图像上传到 S3 的图像库。

首先它将图像保存为本地计算机上的临时文件,然后将其上传到 S3。

我的问题是使用某些函数临时文件被上传到C:\\xampp\\tmp/并使用临时文件被上传到的其他函数C:\Users\myUser\AppData\Local\Temp

我的问题是,这是在哪里决定的?以及如何配置它?

我正在使用 Win10 机器和 Postman。

这是将图像上传到的函数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'),

但有时它仍然发送到/xamppC:\Users\myUser\AppData\

标签: phpamazon-web-servicesamazon-s3laravel-5laravel-medialibrary

解决方案


该库具有文档https://docs.spatie.be/laravel-medialibrary/v7/installation-setup中列出的临时路径“temporary_directory_path”的配置指令。

设置有帮助吗?


推荐阅读