2012-05-16 31 views
1

我對CI比較陌生,但我很享受它。找不到在CodeIgniter中配置任何TinyMCE圖像上傳插件的方法

我已經建立了使用TinyMCE的修復標記一個相當強大的形式。我的一個需求是上傳圖片而不是熱鏈接。

我試圖運行多個不同的TinyMCE的上傳插件,但一切似乎都路配置問題或Apache塊whathaveyou。

當讀CI文檔我似乎記得一些有關上載,但我真的不遵循它。

有沒有我沒有做的事情?也許是路由或.htaccess的東西?有推薦使用CI的TinyMCE上傳方法嗎?

在此先感謝。

回答

1

在您所上傳圖片的文件夾應放在「的public_html」 沒有在任何子目錄。即圖片上傳文件夾應該是在父文件夾

+1

實際上它可以在文件系統的任何地方設置,只要用戶權限設置正確。 – Tom

1

創建自己的JQuery /角/無論在上傳按鈕點擊事件,併發送一個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表單上傳庫創建一個可以處理上傳文件的控制器。坦率地說,我比FinyMCE更喜歡Froala,因爲它具有所有這些漂亮的小事情,事先可能已經發現並可能具有更多功能並且可能被剝皮。無論怎樣漂浮你的山羊人。讓我知道這是否成功。我只是在現場準備好了這個代碼,而且很懶惰。你可以移動你的TinyMCE init中的表單處理函數。乾杯!