Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Codeigniter 代码点火器+;编解码器(wysiwyg js编辑器)。图像上传_Codeigniter_Upload_Redactor - Fatal编程技术网

Codeigniter 代码点火器+;编解码器(wysiwyg js编辑器)。图像上传

Codeigniter 代码点火器+;编解码器(wysiwyg js编辑器)。图像上传,codeigniter,upload,redactor,Codeigniter,Upload,Redactor,我试图在Codeigniter网站中集成所见即所得编辑器Redactor 修订: { lang: lang(), toolbarFixed: true, buttons: ['html', '|', 'bold', 'italic', 'deleted', '|', 'image', 'video', '|', 'unorderedlist', 'orderedlist', '|', 'alignment', '|', 'horizontalrule', '|', 'ta

我试图在Codeigniter网站中集成所见即所得编辑器Redactor

修订:

{
    lang: lang(),
    toolbarFixed: true,
    buttons: ['html', '|', 'bold', 'italic', 'deleted', '|', 'image', 'video', '|', 'unorderedlist', 'orderedlist', '|', 'alignment', '|', 'horizontalrule', '|', 'table', '|', 'mtLink'],
    imageUpload: '/upload_photo'
}
当我开始通过上传图像对话框发送照片时,我在开发者控制台中看到:

Uncaught TypeError: Cannot read property '0' of null redactor.js:1
Redactor.(anonymous function).$.(anonymous function).(anonymous function).uploadLoaded redactor.js:1
p.isFunction.f jquery.js:2
p.event.dispatch jquery.js:2
g.handle.h
脚本“上载照片”正在运行,但$\u文件为空

出了什么问题,我该如何解决


提前感谢。

我整晚都在摸索着试图解决这个问题,结果证明这是一个简单的过度站点(所以给自己一记耳光,就像我给自己一记耳光一样!)

配置中将CI跨站点请求伪造(CSRF)保护设置为TRUE。当你提交一个表单而没有刷新一个旧页面时,Redactor会看到一个令人讨厌的错误页面(我真的很想找到一个解决方案)

CSRF令牌必须以邮寄方式提交的任何形式传递。当使用CI的
表单_open()
时,这会自动完成,但Redactor使用它自己的表单进行发布。所以你需要像这样包含CSRF信息

uploadFields: {
 <?php echo $this->security->get_csrf_token_name(); ?>: '<?php echo $this->security->get_csrf_hash(); ?>'
 }
上传字段:{
: ''
}

我很确定这是你的问题。它是我的(再次重击self的头部)。

CI的文件上载类将在默认情况下从名为“userfile”的输入字段中查找POST数据。redactor的文件输入字段名为“file”。因此,您需要通过将
$this->upload->do_upload()
更改为
$this->upload->do_upload('file')
在上载脚本中规定此名称


如果这不是问题,您需要在此处包含您的上传代码,以便我能看到发生了什么。

谢谢您的回答<代码>$config['csrf_protection']=FALSE$this->security->get\u csrf\u token\u name()给出“ci\u csrf\u token”$this->security->get\u csrf\u hash()给出空值哦,真可惜。好的,那么您确定上传脚本的路径正确吗?尝试完整的服务器路径。上传脚本自己工作,没有错误,不需要任何其他post数据?您需要获取图像上载错误回调,并创建一些错误消息,以便从脚本中的不同失败点发送。由于某些原因,我无法让错误回调正常工作:(当然,路径是正确的。php脚本说:count($\u文件)是零。您是否使用CI生成表单?您知道默认情况下,CI将查找名为“userfile”的post数据。您是否在CI上载脚本中声明了字段名以匹配redactor使用的字段名?否,表单是手动编码的。是的,我知道“userfile”。是的,我正在查找“file”。但是,正如我所说,变量$\u FILES是空的。我知道这一点,这对我来说并不奇怪:)我重复一遍,$\u文件在运行php脚本时是空的。您需要将代码放在这里,这样我才能看到发生了什么。我还建议您将
imageUpload:'/upload\u photo'
更改为
imageUpload:'upload\u photo'
。还可以使用redactor的imageUploadErrorCallback查看脚本是否返回错误。