我使用的是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){ ... }