Laravel 如何决定临时文件的保存位置?
How does Laravel decide where to save temp files?
我正在使用 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'),
但有时它仍然发送到 /xampp
和 C:\Users\myUser\AppData\
该库在文档 https://docs.spatie.be/laravel-medialibrary/v7/installation-setup.
中列出了临时路径 'temporary_directory_path' 的配置指令
这样设置有用吗?
我正在使用 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'),
但有时它仍然发送到 /xampp
和 C:\Users\myUser\AppData\
该库在文档 https://docs.spatie.be/laravel-medialibrary/v7/installation-setup.
中列出了临时路径 'temporary_directory_path' 的配置指令这样设置有用吗?