Laravel如何决定将临时文件保存在何处?

时间:2018-07-02 07:36:14

标签: php amazon-web-services laravel-5 amazon-s3 spatie

我正在使用this图片库,该图片库将图片上传到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\

1 个答案:

答案 0 :(得分:1)

该库在文档https://docs.spatie.be/laravel-medialibrary/v7/installation-setup中列出了针对临时路径'temporary_directory_path'的配置指令。

设置有帮助吗?