Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件从Laravel上载到azure blob存储_Laravel_Azure_Azure Blob Storage_Inertiajs - Fatal编程技术网

将文件从Laravel上载到azure blob存储

将文件从Laravel上载到azure blob存储,laravel,azure,azure-blob-storage,inertiajs,Laravel,Azure,Azure Blob Storage,Inertiajs,我的任务是用Vue.js(惯性)维护一个Laravel项目(这两个方面我都不是很有经验)。现在我们需要将主机切换到Azure,我被文件存储卡住了。具体来说,我不知道如何将文件从Laravel上传到Blob。我已经在使用这是一种方便的方式来连接驱动程序 我在filesystem.php中的驱动程序(详细信息正确): 我的控制器: $url = request()->file->store('azure'); 请帮忙 根据我的测试,我们应该在.evn中使用双引号来扩展访问密钥 比如说

我的任务是用Vue.js(惯性)维护一个Laravel项目(这两个方面我都不是很有经验)。现在我们需要将主机切换到Azure,我被文件存储卡住了。具体来说,我不知道如何将文件从Laravel上传到Blob。我已经在使用这是一种方便的方式来连接驱动程序

我在filesystem.php中的驱动程序(详细信息正确):

我的控制器:

$url = request()->file->store('azure');

请帮忙

根据我的测试,我们应该在
.evn
中使用双引号来扩展访问密钥

比如说

  • 将此添加到
    .env
    文件中
  • 上传代码

  • 谢谢@Jim Xu,他测试了您示例中的逻辑,效果非常好。 如果有人偶然发现了这一点,默认情况下azure blob容器是私有的。
    要为您的Laravel应用程序公开提供文件或图像,不要忘记将容器的访问级别更改为Blob或container

    欢迎使用SO。。它是
    base64
    image吗?请尝试使用代码:
    store(“”,'azure')
    :不,它不是base64 img。我没有尝试将其存储在数据库中,而是将其存储在Azure中的Storage explorer中。我试着指定磁盘。这对我不起作用。我测试了将blob的URL作为和根(/)提供。这两个选项都不起作用。现在我注意到我在网络上得到一个状态:500,表示:“提供的帐户密钥“”不是有效的base64字符串。它必须通过“base64_decode(,true)”检查。”。有什么想法吗?@brpetrov你能告诉我你是如何得到一个帐户密钥的吗?非常感谢!这看起来像是做这件事的方式!我需要推迟几天,但我会尽快告诉你。要问的一件事是:在azure存储->CORS->您应该允许允许访问它的源(域)。您是创建了要测试的域还是在localhost中创建的?我在某个地方读到你的应用程序将无法访问它,除非你指定它的域。@brpetrov。我在本地主机上测试了它,对我来说没问题。@jimXu它显示“驱动程序[azure]不受支持”。你能帮助我吗?这应该是对@Jim Xu答案的评论。@Robson抱歉,我的声誉水平还没有达到50,所以我无法对其他答案发表评论
    $url = request()->file->store('azure');
    
    AZURE_STORAGE_NAME=<account name>
    AZURE_STORAGE_KEY="<account key>"
    AZURE_STORAGE_CONTAINER=
    AZURE_STORAGE_URL=https://<account name>.blob.core.windows.net/
    
    'azure' => [
                'driver'    => 'azure',
                'name'      => env('AZURE_STORAGE_NAME'),
                'key'       => env('AZURE_STORAGE_KEY'),
                'container' => env('AZURE_STORAGE_CONTAINER'),
                'url'       => env('AZURE_STORAGE_URL'),
                'prefix'    => null,
            ],
    
      public function fileUpload(Request $req){
            $req->validate([
            'file' => 'required|mimes:csv,txt,xlx,xls,pdf|max:2048'
            ]);
    
          
    
            if($req->file()) {
                $fileName = time().'_'.$req->file->getClientOriginalName();
                // save file to azure blob virtual directory uplaods in your container
                $filePath = $req->file('file')->storeAs('uploads/', $fileName, 'azure');
    
                return back()
                ->with('success','File has been uploaded.')
    
            }
       }