我对CI相对较新,但我很享受。
我构建了一个相当健壮的表单,使用TinyMCE来修复标记。我的一个需求是上传图片而不是热链接。
我试图运行多个不同的TinyMCE上传插件,但似乎都有路径配置问题或者Apache阻止了什么。
在阅读CI文档时,我似乎记得有关上传的内容,但我并没有真正遵循它。
有什么我不做的事吗?也许有Routes或.htaccess的东西?是否推荐使用CI的TinyMCE上传方法?
提前致谢。
答案 0 :(得分:1)
您上传图片的文件夹应放在“public_html” 不在任何子目录中。即图像上传文件夹应位于父文件夹
中答案 1 :(得分:1)
在上传按钮上单击创建您自己的JQuery / Angular / Whatever事件,并使用数据向您的服务器发送Ajax调用。您可以使用JQuery从输入中提取数据并将它们发送到表单处理控制器,如图所示here。
假设这是您的输入:
<input type="file" name="file" id="file" required />
你的js将包含一个JQuery触发器和一个单独的Jquery函数来进行Ajax调用,如下所示。
tinymce.init({
selector: 'textarea',
height: 500,
toolbar: 'mybutton',
menubar: false,
setup: function (editor) {
editor.addButton('mybutton', {
text: 'My button',
icon: false,
onclick: function () {
//Trigger Submit event on input
$("#uploadimage").trigger('submit');
}
});
},
content_css: [
'//fast.fonts.net/cssapi/e6dc9b99-64fe-4292-ad98-6974f93cd2a2.css',
'//www.tinymce.com/css/codepen.min.css'
]
});
//Triggered on submit
$("#uploadimage").on('submit',(function(e) {
e.preventDefault();
$("#message").empty();
$('#loading').show();
$.ajax({
url: "ajax_php_file.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData:false, // To send DOMDocument or non processed data file it is set to false
success: function(data) // A function to be called if request succeeds
{
$('#loading').hide();
$("#message").html(data);
}
});
}));
使用CI表单上载库创建可以处理上载文件的控制器。坦率地说,我更喜欢Froala而不是TinyMCE,因为它预先想出了所有这些漂亮的小东西,可能有更多的功能,可以剥皮。无论什么漂浮你的山羊男人。让我知道这是否成功。我刚刚在现场编写了这段代码并且非常懒惰。您可以在TinyMCE init中移动表单处理功能。干杯!