簡體   English   中英

在 CKeditor 4 中上傳圖像時如何添加要發送的變量(id)

[英]How to add a variable (id) to send when uploading image in CKeditor 4

我正在使用 Laravel 7。我在沒有插件的情況下獲得了上傳圖像的代碼,但我現在的問題是添加一個 id(變量)以及來自 CKeditor 4 的 3 個變量默認值一起傳遞。

CKEditor=editor1&CKEditorFuncNum=1&langCode=en

這些是在“查詢字符串參數”中傳遞的變量:

_token: PcQGTkcFguEY4dJeguWsaNo (sample token)
CKEditor: pDescription
CKEditorFuncNum: 1
langCode: en 

我想要發生的是讓 url 變成這樣,帶有“id”變量

樣本:

CKEditor=editor1&CKEditorFuncNum=1&langCode=en&id=1

這些是我想在“查詢字符串參數”中傳遞的變量:帶有“id”變量

_token: PcQGTkcFguEY4dJeguWsaNo (sample token)
CKEditor: pDescription
CKEditorFuncNum: 1
langCode: en
id:1

id(變量)是我想要關聯的照片的產品的 id(外鍵)。

我怎樣才能實現這一目標或任何想法我應該從哪里開始?

這是我的代碼:

Controller:

 public function upload(Request $request)
{ 
     

    if($request->hasFile('upload')) {
        $originName = $request->file('upload')->getClientOriginalName();
        $fileName = pathinfo($originName, PATHINFO_FILENAME);
        $extension = $request->file('upload')->getClientOriginalExtension();
        $fileName = $fileName.'_'.time().'.'.$extension;
    
        $request->file('upload')->move(public_path('uploaded_productpictures'), $fileName);

        $CKEditorFuncNum = $request->input('CKEditorFuncNum');
        $url = asset('uploaded_productpictures/'.$fileName); 
        $msg = 'Image uploaded successfully'; 
        $response = "<script>window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '$url', '$msg')</script>";
           
        @header('Content-type: text/html; charset=utf-8'); 
        echo $response;

        // return response()->json([ 'fileName' => $filename, 'uploaded' => true, 'url' => $url, ]);
  
    }

這是 javascript 中的代碼

<script src="{{ asset('ckeditor/ckeditor.js') }}"></script>
<script>  
    CKEDITOR.replace('pDescription', {
        fileTools_requestHeaders: {
            'X-CSRFToken': '{{ csrf_token() }}',
        },
        filebrowserUploadUrl: "{{route('save-ckeditorproductphoto', ['_token' => csrf_token() ])}}",    
        filebrowserUploadMethod: 'form'
    });  
</script>

這是我的路線:我試過這個,但 id 沒有通過

Route::post('/products/save-ckeditorproductphoto', 'ProductphotosController@upload')->name('save-ckeditorproductphoto');

我不知道ckfinder,但我只知道當我使用上傳名稱作為function 來接收來自fileBrowserUrl 的$request 時。

如果您只需要id為什么不在route中傳遞它

filebrowserUploadUrl: "{{route('save-ckeditorproductphoto', [$some_id,'_token' => csrf_token())}}"

文檔說路由助手可以采用數組上的任何參數

Route::post('/products/save-ckeditorproductphoto/{product}', 'ProductphotosController@upload')->name('save-ckeditorproductphoto');

並修改您上傳的 controller 之類的

public function upload(Request $request, Product $product){ ... }

暫無
暫無

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

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