当前位置: 首页 > 知识库问答 >
问题:

图像存储链接在laravel的联机服务器中不工作

公孙锋
2023-03-14

我有一个laravel应用程序,我在localhost中上传图像,它正在工作,我使用存储目录的链接

php artisan storage:link

本地服务器

使用我自己的控制器上载1个图像时,该图像将存储在storage/app/public/posts/file1中。jpg,同时图像将存储在root/public/storage/posts/file1中。jpg=

但是在一个在线服务器共享主机中,当我上传图像时,它不工作

图像将存储在storage/app/public/posts/file1中。jpg,但映像不存储在root/public/storage/posts/file1中。jpg=

共有3个答案

壤驷阳冰
2023-03-14

按公共路径更改存储路径设置

'public' => [
  'driver' => 'local',
  'root' => public_path('app/public_html/'),
  'url' => env('APP_URL').'/storage',
  'visibility' => 'public',
],

if ($request->hasFile('image')) {
  $image = $request->file('image');
  $filename = 'page' . '-' . time() . '.' . $image->getClientOriginalExtension();
  $location = public_path('app/public_html/images/' . $filename);
  Image::make($image)->resize(1200, 600)->save($location);
  if(!empty($page->image)){
    Storage::delete('images/' . $page->image);
  }
  $page->image = $filename;            
}

如果不起作用,您可以尝试:

base_path路径。public_html图像

戎永福
2023-03-14

我很难让Laravel存储在本地主机上正常工作。

解决方案:这就是你在localhost(也许还有正式服)上解决这个问题的方法。

  1. 删除应用/公共/存储文件夹
  2. 删除存储/app/公共文件夹
  3. 在存储/app/文件夹中创建一个名为“公共”的文件夹(是的,你刚刚删除的那个)
  4. 运行以下artisan命令:
html prettyprint-override">php artisan storage:link

全部完成!

通过Laravel的Storage::class上传的文件现在将同时出现在“app/public/Storage”和“Storage/app/public”文件夹中。

蓬祺
2023-03-14

您可以在路由/控制器中使用Artisan::call()方法来执行Artisan命令,而无需使用终端。

$exitCode=Artisan::call('storage:link',[]);echo$exitCode;//无错误的0退出代码

 类似资料:
  • 我已通过此命令创建了存储链接 存储链接很好,我可以通过浏览器访问该文件。我的想法是,我想将用户档案图片保存在存储链接。My laravel充当另一个系统的Web服务(仅提供RESTFUL API)(让我们在另一个域上使用react应用程序HTML) 如果我们需要访问用户配置文件图片,下面是API的响应 问题是每次我们更新/更换47.png,我们通过浏览器访问输入此URL图像没有改变。 下面是lar

  • 问题内容: 我想上传一个文件并将其存储在数据库中。我创建了一个LargeBinary列。 我读取了上传的文件并将其存储在数据库中。 这是将图像作为二进制文件存储在数据库中的正确方法吗?如何将二进制数据再次转换为图像以显示它? 问题答案: 如果您绝对需要将映像存储在数据库中,那么可以,这是正确的。通常,文件存储在文件系统中,路径存储在数据库中。这是更好的解决方案,因为与动态发送大量数据的应用程序不同

  • 我在创建与laravel的符号链接以访问存储中的一些图像时遇到一些问题。。。 我将图像存储在文件夹中 我有图像1.png,2.png等等... 我使用php artisan命令创建链接 现在,当我尝试在视图中访问时,以下路径不起作用 我还需要做其他事情才能公开访问存储文件夹吗?

  • 我的插座有问题。io作为一名广播员与laravel echo合作。 我试过什么: 我可以看到用户在日志中连接: 我的队列正在运行,正在正确记录所有事件。 我可以在redis控制台中完美地看到redis我的事件和数据库通知。 但是没有广播任何事件,我也没有在laravel echo服务器控制台中看到它们。一切都在我的本地主机上运行,但在生产环境中没有,我失去了理智。 以下是我的laravel ech

  • 我有一个Laravel项目,我试图用Storage::delete删除图像,但它似乎不起作用。我的图像位于storage\app\public\uploads文件夹中。我可以上传和编辑图像,但删除不起作用。我使用的是Laravel 8。 产品控制器。PHP PHP 网状物PHP 配置/文件系统。PHP

  • 我正在尝试让Firebase存储与Imgix或cloudinary这样的图像服务一起工作。然而,Firebase提供的下载URL似乎不能与这些服务一起工作。 例如:Cloudinary说您可以获取如下所示的图像: http://res.cloudinary.com/demo/image/fetch/http://upload.wikimedia.org/wikipedia/commons/0/0C