沒(méi)用 struts2.0之前 , fck能正常上傳圖片。 用了 struts2.0之后,,fck上傳圖片 彈出 警告:Security error. You probably don't have enough permissions to upload. Please check your server 什么原因呢? 一般情況下跟你的web.xml的配置有關(guān)系,。一般的配置是 <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 這樣做,,使得struts2的過(guò)濾器也作用到了fckeditor的上傳URL,從而引發(fā)沖突,。 1,、第一種解決的辦法是修改你的web.xml文件。 <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> 只讓過(guò)濾器對(duì)加有.action后綴的路徑有效,,如果需要攔截.jsp,,加上*.jsp就行了。 但是,,如果項(xiàng)目中定義了可以不加后綴,,那么這種方式就沒(méi)有效果了。這也是我現(xiàn)在碰到的問(wèn)題,。怎么辦,? 2、第二種解決辦法是將fckeditor的上傳方式修改成struts2的上傳方式,。 網(wǎng)上有位網(wǎng)友還做了struts2的fck插件,,非常復(fù)雜,不建議這么做,,代價(jià)太大了,。 3、最簡(jiǎn)單的方法,,可以有效的解決這個(gè)問(wèn)題,,是下面的方法。 自定義一個(gè)struts2的過(guò)濾器,,將配置換成自己自定義的過(guò)濾器,。當(dāng)然這個(gè)過(guò)濾器要繼承StrutsPrepareAndExecuteFilter.java。 然后重寫(xiě)doFilter方法: Java代碼 public void doFilter(ServletRequest req,ServletResponse res,FilterChain chain)throws IOException,ServletException{ HttpServletRequest request = (HttpServletRequest)req; if("/fckeditor/editor/filemanager/connectors/fileupload".equals(request.getRequestURI())){ chain.doFilter(req,res); }eles{ super.doFilter(req,res,chain); } } 通過(guò)簡(jiǎn)單的重寫(xiě)就解決了fckeditor上傳和struts2沖突的問(wèn)題,。 |
|