簡體   English   中英

如何使用 cloudinary + Laravel 上傳圖片?

[英]How Upload images with cloudinary + Laravel?

好吧,發生的事情是我想通過 Laravel 將圖像上傳到 Cloudinary,我按照文檔中所述的步驟操作:

https://github.com/cloudinary-labs/cloudinary-laravel和這里: https : //cloudinary.com/blog/laravel_file_upload_to_a_local_server_or_to_the_cloud

我正在使用 Laravel 8,這是我的代碼:

 public function store(Request $request){

    $request->validate([
        'name' => 'required|string|unique:festivals|max:255', //unique:table
        'description' => 'required|string|max:255',
        'image' => 'required|image|dimensions:min_width=200,min_height=200',
    ], self::$messages);

    //Here I create an instance and upload file to server 
    $festival = new Festival($request->all());
    $path = cloudinary()->upload($request->file('image')->getRealPath())->getSecurePath();
    dd($path);

    //Then at field image of festivals que save the path and that goes to the database
    $festival->image = 'festivals/' . basename($path);
    $festival->save();


    return response() -> json($festival, 201); //code 201 created

}

當我嘗試通過 Postman 創建新記錄時,會發生這種情況:

注冊新節日后出錯

但是,該圖像已上傳到 Cloudinary:

圖片上傳

然后我嘗試檢查記錄是否已創建,但未創建。

我能做什么,有人知道嗎?

謝謝

好的,我解決了:)

    //Here I create an instance and upload file to server
    $festival = new Festival($request->all());
    $result = $request->image->storeOnCloudinary();
     
    //Here I get the url
    $path = $result->getPath();

    //Then at field image of festivals que save the path and that goes to the database

    //$festival->image = $path; output: "https://res.cloudinary.com/test/image/upload/v1226931211/zuiyb17vfs8dre6gvuov.jpg"
    //$festival->image = dirname($path); output: "https://res.cloudinary.com/test/image/upload/v1526711711"
    //$festival->image = basename($path); output: "zuiy31lvfs4dre5gvuov.jpg"
    $base =  basename(dirname($path).basename($path)); //output: "v1636941221zuiyb14vfsmdre6gvuov.jpg"
    $folder =  substr($base, 0, -24); //output: "v1626915261"
    //So:
    $img_path = $folder.'/'.basename($path);

    $festival->image = 'festivals/'.$img_path;  //imageFolder/imageName.jpg;

但如果有人有最好的方法,請告訴我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM