UEditor 與Struts2 結合上傳圖片

使用百度開發的所見即所得富文本web編輯器Ueditor,上傳圖片一直失敗,有紅色的×提示。php

經過調試Ueditor.java文件,發現問題出如今下面的①處java

public void upload() throws Exception {web

  boolean isMultipart = ServletFileUpload.isMultipartContent(this.request);app

  if (!isMultipart) {this.state = this.errorInfo.get("NOFILE");return;}框架

  DiskFileItemFactory dff = new DiskFileItemFactory();jsp

  String savePath = this.getFolder(this.savePath);編輯器

  dff.setRepository(new File(savePath));this

  try {url

    ServletFileUpload sfu = new ServletFileUpload(dff);spa

    sfu.setSizeMax(this.maxSize * 1024);

    sfu.setHeaderEncoding("utf-8");

    FileItemIterator fii = sfu.getItemIterator(this.request);

    while (fii.hasNext()) {      -------------①

每次都是返回false,因此程序沒有繼續執行了,而是直接退出。 下面提供最終的解決方案。

解決辦法1.修改web.xml不過濾*.jsp也就是ueditor的上傳圖片請求。

    2.就是更改ueditor的上傳圖片請求地址,不讓struts2過濾。

具體狀況根據本身的項目而定,釋掉了下面一段,上傳成功!!!

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

由於項目中使用了Struts2框架,Struts2的Filter會過濾到上傳文件的request,封裝爲Struts2本身的MultiPartRequestWrapper,

這個時候再到UEditor裏的Uploader中用commons-fileupload組件解析request,就沒法獲取到正確的文件流,因此上傳失敗。 

FileItemIterator fii = sfu.getItemIterator(this.request);

fii.hasNext()  一直返回false;

 

本着不重複發明輪子的原則,具體部署的資料請參考下面的連接(版本:1.2.6.1 jsp utf-8

http://www.ueditorbbs.com/forum.php?mod=viewthread&tid=26831&extra=page%3D1

相關文章
相關標籤/搜索