0
我有一個接縫2.2.2應用程序,我試圖自定義ckeditor fileUpload插件。java中使用apache fileUpload自定義ckeditor fileUpload parseRequest返回空列表
我想出解決的辦法是:
1)初始化編輯與 '編輯' 樣式類的所有元素:
var elements = CKEDITOR.document.find('.editor');
for(var i = 0; i< elements["$"].length; i++){
CKEDITOR.replace(elements["$"][i], {
filebrowserUploadUrl: rootPath + "/cops/filebrowserUploadUrl.seam"
});
}
2)設置filebrowserUploadUrl.seam,什麼也不做,但執行:
#{attachmentController.sendImageToServer()}
3)實現後端與Apache通用FileUpload:
public void sendImageToServer()
{
HttpServletRequest request = ServletContexts.instance().getRequest();
DiskFileItemFactory factory = new DiskFileItemFactory();
File repository = (File) request.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
ServletFileUpload upload = new ServletFileUpload(factory);
try
{
List<FileItem> items = upload.parseRequest(request);
processItems(items); //set the file data to specific att
saveOpenAttachment(); //save the file to disk
}
這種方法稱爲好。我可以在請求中去除一個上傳參數(帶有一些二進制數據),但upload.parseRequest(request)返回一個空列表。我已經搜索了這個問題,我做了我能做的所有事情,但我無法確定應用程序自定義FaceletViewHandler是否導致此問題。 雖然如果我能找到解決這個問題的方法,我會非常滿意,但我覺得這不是一個好的解決方案。也許Seam和facelets的集成可以給我一個更好的解決方案。我真的不知道。 有什麼建議嗎?
我得到的建議工作通過列表 items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request)在bean上並設置 在我的components.xml文件中。但仍有疑問:任何其他的url模式都會崩潰。有誰知道爲什麼? –