我在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字符串,它不能通过使用第一个代码发送到服务器。当我使用第二个代码时,我能够将整个编辑器值发送到服务器,但无法将文件发送到服务器。
非常感谢任何帮助。
答案 0 :(得分:1)
安迪 -
我不相信你需要处理编写代码来上传粘贴到TinyMCE中的图像。如此处所述:
https://www.tinymce.com/docs/advanced/handle-async-image-uploads/
...如果您将TinyMCE 4.2+配置为正确的方式,它将在将图像粘贴到编辑器时处理上传。您的应用程序代码只需要处理如何在保存整个表单时提交表单(和编辑器HTML)。 TinyMCE将代码作为编辑器的一部分,根据您配置TinyMCE的方式将图像发布到您选择的端点。执行POST的实际任务变为TinyMCE。