使用非常大的文本

时间:2016-01-15 15:44:12

标签: jquery ajax tinymce liferay

我在Portal中使用tinyMCE编辑器,用户可以在其中创建他/她的邮件正文。为此,我们创建了一个表单并使用Ajax提交该表单。此外,我们还提供用户使用他/她的邮件正文附加文档。

首先,我提供两个带ajax的表单提交,第一个用于文件,第二个用于编辑值:

发送文件:

var formData = new FormData($("#<portlet:namespace />interviewScheduleForm")[0]);
 jQuery.ajax({
     type: 'POST',
     url:'<%=insertPresentCandidateURL.toString()%>',                
     data: formData,
     cache: false,
     contentType: false,
     processData: false,
     async: false,
     success: function(data){
     $('#<portlet:namespace />interviewVenue').val("");
        bootbox.alert('Interview scheduled successfully');
     },
     error:function(){
         bootbox.alert('Error in Scheduling Interview');
     }
});

发送编辑器值:

jQuery.ajax({
    type: 'POST',  
    url:'<%=insertPresentCandidateURL.toString()%>',
    data: $("#<portlet:namespace />interviewScheduleForm").serialize(),
    form: {
        id: '<portlet:namespace />interviewScheduleForm',
        upload: true
     },
     async: false,               
     success: function(data){
     $('#<portlet:namespace />interviewVenue').val("");
          bootbox.alert('Interview scheduled successfully');
     },
     error:function(data){
          bootbox.alert('Error in Scheduling Interview');
     }                 
});

我面临的问题我只能使用其中一个,但我需要同时使用这两个功能。特别是当用户在编辑器中粘贴图像时,我得到一个非常大的base64字符串,它不能通过使用第一个代码发送到服务器。当我使用第二个代码时,我能够将整个编辑器值发送到服务器,但无法将文件发送到服务器。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

安迪 -

我不相信你需要处理编写代码来上传粘贴到TinyMCE中的图像。如此处所述:

https://www.tinymce.com/docs/advanced/handle-async-image-uploads/

...如果您将TinyMCE 4.2+配置为正确的方式,它将在将图像粘贴到编辑器时处理上传。您的应用程序代码只需要处理如何在保存整个表单时提交表单(和编辑器HTML)。 TinyMCE将代码作为编辑器的一部分,根据您配置TinyMCE的方式将图像发布到您选择的端点。执行POST的实际任务变为TinyMCE。