laravel
的新用户,使用laravel的latest version
,创建了一个应用程序,并根据文档here部署到服务器。我正在使用Intervantion
来调整上传图像的大小。根据文档,这就是我所做的
/home/username/laravel-project/
中上传了完整的项目,该项目与public_html
在同一目录中public_html
下,我从/home/username/laravel-project/public
移动了所有文件,并从public
中删除了/home/username/laravel-project/
文件夹env
文件我如何在控制器中使用Intervention上传图像并调整其大小
$save_path = 'product-images/';
$image_resize = Image::make($file->getRealPath());
$image_resize->resize($width, $height);
$image_resize->save(public_path($save_path .$newFileName));
filesystems.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
问题1 :-上传图像时出现错误Can't write image data to path (/home/username/laravel-project/public/product-images/15758646011-500x550.jpg)
。当我在public
下重新创建/home/username/laravel-project/
文件夹并以product-images
权限创建777
文件夹时,它可以工作,但是我不知道这是需要放置图像的地方存储或图像需要存储在public_html/project-images
问题2:- 当我尝试查看上传的图像后,解决了Issue 1
中提到的上传问题后,这些图像没有显示,我注意到图像的URL为http://example.com/product-images/15758632231-500x550.jpg
。我试图在单独的窗口中打开URL,并得到404 not found
。我正在使用代码return url('product-images/'.$value);
检索产品图片,其中$value = 15758632231-500x550.jpg
来自数据库
答案 0 :(得分:0)
对于问题1 :
首先,您需要通过运行以下命令来创建从public/storage
到storage/app/public
的符号链接:
php artisan storage:link
您需要通过以下代码将图像存储在storage\app\public\images
文件夹中:
use Illuminate\Support\Facades\Storage;
Storage::put('file.jpg', $contents);
777
权限。对于问题2 :
您可以使用Storage
门面来获取文件的URL。
File URL
您可以这样编写代码。
$url = Storage::url('file.jpg');
return $url;