日期:2014-05-19  浏览次数:20824 次

weblogic10 上传 【文件名、目录名或卷标语法不正确】
在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>