在项目移到webLogic下布署,通过IO流上传文件时
fullFileName = new StringBuffer("d:\\upload\\");//上传的文件的路径
报错:
<2010-9-1 下午02时51分23秒 CST> <Error> <HTTP> <BEA-101005> <[weblogic.servlet.internal.WebAppServletContext@8777c - appName: '_appsdir_zhpower_dir', name: 'zhpower', context-path: '/zhpower', spec-version: '2.5'] getRealPath() called with unsafe path: "d:\upload".
java.io.IOException: 文件名、目录名或卷标语法不正确。
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396)
at java.io.File.getCanonicalPath(File.java:559)
at weblogic.servlet.internal.WebAppServletContext.getRealPath(WebAppServletContext.java:748)
at com.jspsmart.upload.SmartUpload.isVirtual(SmartUpload.java:734)
Truncated. see log file for complete stacktrace
>
但是改成 相对路径:
fullFileName = new StringBuffer("\\upload\\");//上传的文件的路径
又没问题,在网上找了一大堆,也有人报这种错。但都没有解决之道。这种错说是不能够上传到项目根目录以外的文件里。大家帮我看看啊。。。有没有什么办法。。
在线等。。。。
5 个解决方案
#1
1.在自己工程/WEB-ROOT/WEB-INF/能找到自己需要的Weblogic.xml
2.在XML里写入下面这段代码即 配置成功!
例如:你想访问E:/upload/1/1025/1025_2009_1.jpg 只要输入contextPath/1/1025/1025_2009_1.jpg
contextPath可以通过 request.getContextPath()得到
2.在XML里写入下面这段代码即 配置成功!
例如:你想访问E:/upload/1/1025/1025_2009_1.jpg 只要输入contextPath/1/1025/1025_2009_1.jpg
contextPath可以通过 request.getContextPath()得到
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns=' http://www.bea.com/ns/weblogic/weblogic-web-app'>
<virtual-directory-mapping>
<local-path>D:/upload</local-path>
<url-pattern>/*</url-pattern>
< irtual-directory-mapping>
</weblogic-web-app>
#2
2楼正解,多谢.问题已解决!
#3
#4
没对吧,我也是这样配置的,但是获得的是不时配置文件 里面的配置属性,得到的是web放文件的根路径阿
#5
我的为什么提示<virtual-directory-mapping>不存在,是不是要额外引入什么包啊
#1
1.在自己工程/WEB-ROOT/WEB-INF/能找到自己需要的Weblogic.xml
2.在XML里写入下面这段代码即 配置成功!
例如:你想访问E:/upload/1/1025/1025_2009_1.jpg 只要输入contextPath/1/1025/1025_2009_1.jpg
contextPath可以通过 request.getContextPath()得到
2.在XML里写入下面这段代码即 配置成功!
例如:你想访问E:/upload/1/1025/1025_2009_1.jpg 只要输入contextPath/1/1025/1025_2009_1.jpg
contextPath可以通过 request.getContextPath()得到
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns=' http://www.bea.com/ns/weblogic/weblogic-web-app'>
<virtual-directory-mapping>
<local-path>D:/upload</local-path>
<url-pattern>/*</url-pattern>
< irtual-directory-mapping>
</weblogic-web-app>
#2
2楼正解,多谢.问题已解决!
#3
#4
没对吧,我也是这样配置的,但是获得的是不时配置文件 里面的配置属性,得到的是web放文件的根路径阿
#5
我的为什么提示<virtual-directory-mapping>不存在,是不是要额外引入什么包啊