上傳文件報錯
[ERROR]file upload error.
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
報錯的代碼 officeUtil.java
String htmlPath = filePath.substring(0,filePath.lastIndexOf("/"))+"/html";
- 發(fā)現(xiàn)diskFile的路徑是
C:\app\ftp\announcement\2016\10\14\9674574120311.xls
所以找不到"/",于是改成
String htmlPath = filePath.substring(0,filePath.lastIndexOf("\\"))+"\\html";
不報錯,但是涉及到了路徑的更改,感覺windows的路徑和其他系統(tǒng)的不一樣,可能會影響其他平臺的使用?
- 2016年10月18日更新
- 將property的path全部改成c:/
- 因為windows也可訪問/的路徑 除了
String htmlPath = filePath.substring(0,filePath.lastIndexOf("\\"))+"\\html";
其他全部改成/ - 上傳圖片無法顯示預覽
-
上傳圖片直接調(diào)用FileUploadController的uploadPic,改寫了方法,加上了對type的判斷使其使用于公告圖片的上傳,但是上傳后無法顯示預覽圖片,查看頁面:
<img id="pic" src="C:/app/ftp/images/announcement/image/2016/10/18/1476778297615.jpg" width="160" height="80">
發(fā)現(xiàn)是圖片的路徑錯誤,name前面少了一個/,于是改寫FileUploadController.uploadPic,在fileName前加上一個/3.1 依然無法顯示
- 仔細觀察發(fā)現(xiàn),圖片的路徑是
C:/app/ftp/images
,查看本地發(fā)現(xiàn)么有這個路徑,原來這是配置文件中的imgPath.但是這個path的路徑是C:/app/ftp/images/
后面多了一個/
,索性改成了C:/app/ftp/
但是然并軟..查看web發(fā)現(xiàn)直接點擊鏈接是可以查看本地文件的.但是編輯框里就是不能顯示,顯示錯誤Not allowed to load local resource: file:///C:/app/ftp/announcement/image/2016/10/18/1476781179860.jpg
!最后發(fā)現(xiàn)是由于chrome處于安全考慮不能加載絕對路徑的本地文件..呵呵 - 2016年10月20日更新
搭建本地http服務器,可以加載!
3.2 上傳刪除再上傳圖片預覽么有更新 - 增加重載上傳圖片的div 使用html()
- 仔細觀察發(fā)現(xiàn),圖片的路徑是
連接本地的openOffice服務錯誤
connection failed: socket,host=localhost,port=8100,tcpNoDelay=1
查看報錯的文件
Source not found
The JAR file C:\.....\jodconveter-2.2.2.jar has no source attachment.
- 查看路徑,發(fā)現(xiàn)maven的jodconveter下么有source包,于是從網(wǎng)上下載,手動添加后解決
獲取OpenOffice連接失敗
connection failed: socket,host=localhost,port=8100,tcpNoDelay=1
- 很明顯是openOffice的服務么有開啟,于是網(wǎng)上下載了openOffice
進入安裝目錄C:\Program Files (x86)\OpenOffice 4\program
shift 右鍵 打開命令行
輸入
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
- 打開服務后,可以進行轉(zhuǎn)換,但是插入數(shù)據(jù)庫的html路徑是windos下的絕對路徑,待解決
- 但是每次都要手動打開服務有點麻煩,試著在代碼中加入打開服務以及關(guān)閉服務
String command = "C:\\Program Files (x86)\\OpenOffice 4\\program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard ";
Process pro = Runtime.getRuntime().exec(command);
// 創(chuàng)建Openoffice連接
OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);
try {
// 連接
con.connect();
} catch (ConnectException e) {
logger.error("獲取OpenOffice連接失敗...",e);
}
// 創(chuàng)建轉(zhuǎn)換器
DocumentConverter converter = new OpenOfficeDocumentConverter(con);
// 轉(zhuǎn)換文檔問html
converter.convert(docFile, htmlFile);
// 關(guān)閉openoffice連接
con.disconnect();
//關(guān)閉openOffice服務
pro.destroy();
- 運行代碼后,上傳成功
update pic_info SET business_type = 201, pic_url = '/announcement/2016/10/15/3329715835213.xls',
file_type = 'xls', real_name = 'xx工作周報.xls', html_path = 'C:\app\ftp\announcement\2016\10\15\html\3332052044145.html'
where id = 613311
- 成功!
- 2016年10月18日更新
- 將openOffice的command加在了property文件中,便于修改.
- 解決了openOffice轉(zhuǎn)碼html后亂碼的問題:更改openOffice配置,將字符格式設置為utf-8,將輸出設置為html3.2
404錯誤
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:vj-practice-manager' did not find a matching property.
The solution to this problem is very simple. Double click on your tomcat server. It will open the server configuration. Under server options check ‘Publish module contents to separate XML files’ checkbox. Restart your server. This time your page will come without any issues.
完成上傳后,點擊編輯,顯示loading動畫后卡死
- 未解決?????
- 原因是create的時候么有添加可見部門等數(shù)據(jù)的操作,導致加載的時候無法讀取相關(guān)的list導致一直卡死