在Tomcat6.0下没有问题.
在项目移到webLogic下布署,通过IO流上传文件时
- Java code
fullFileName = new StringBuffer("d:\\upload\\");//上传的文件的路径
报错:
- Java code
<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>
但是改成相对路径:
- Java code
fullFileName = new StringBuffer("\\upload\\");//上传的文件的路径
又没问题,在网上找了一大堆,也有人报这种错。但都没有解决之道。这种错说是不能够上传到项目根目录以外的文件里。大家帮我看看啊。。。有没有什么办法。。
在线等。。。。
------解决方案--------------------
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()得到
- XML code
<?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>