如何在CKeditor 4中添加上传图像时要发送的变量(id)



我使用的是Laravel 7。我在上传没有插件的图像时得到了代码,但我现在的问题是添加一个id(变量(,该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(外键(。

我如何才能做到这一点,或者我应该从哪里开始?

这是我的代码:

控制器:

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,但我只知道当我使用上传名称作为函数从fileBrowserUrl接收$请求时。

如果您只需要id,为什么不在route中传递它

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

文档表示,路由助手可以接受阵列上的任何参数

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

并修改您的上传控制器,如

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

最新更新