1

我对 CI 比较陌生,但我很喜欢它。

我已经构建了一个相当健壮的表单,它使用 TinyMCE 来修复标记。我的需求之一是上传图片而不是热链接。

我曾尝试运行多个不同的 TinyMCE 上传插件,但似乎都存在路径配置问题或 Apache 阻止了什么。

在阅读 CI 文档时,我似乎记得一些关于上传的内容,但我并没有真正遵循它。

有什么我没有做的吗?也许与 Routes 或 .htaccess 相关?是否有推荐的使用 CI 的 TinyMCE 上传方法?

提前致谢。

4

2 回答 2

1

您上传图像的文件夹应放在“public_html”而不是任何子目录中。即图片上传文件夹应该在父文件夹中

于 2012-07-12T11:55:50.440 回答
1

在上传按钮单击时创建您自己的 JQuery/Angular/Whatever 事件,并将 Ajax 调用与数据一起发送到您的服务器。您可以使用 JQuery 从输入中提取数据并将它们发送到表单处理控制器,如图所示

假设这是您的输入:

<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 初始化中移动表单处理功能。干杯!

于 2016-10-11T11:07:06.483 回答