我在本地上运得程序读取文件时,没有问题,因为tomcat,jdk和代码都是在本地
可是在别人机器上的浏览器上运行时报如下错误:
java.io.FileNotFoundException: C:\Documents and Settings\yyy1314\桌面\E06.xls (系统找不到指定的路径。)JSP页面上用的是<html:file>标签
Action里的相关代码如下:
theFilePath=inportFromExcelForm.getMyFile().getPath();
InputStream is=new FileInputStream(theFilePath);
这里theFilePath的值为C:\Documents and Settings\yyy1314\桌面\E06.xls也就是说本地的程序取得路径后是根据(C:\Documents and Settings\yyy1314\桌面\E06.xls)在本地找相关文件
所以找不到那我应该怎样才能读取到异地的文件或是文件路径呢?
先谢谢了
可是在别人机器上的浏览器上运行时报如下错误:
java.io.FileNotFoundException: C:\Documents and Settings\yyy1314\桌面\E06.xls (系统找不到指定的路径。)JSP页面上用的是<html:file>标签
Action里的相关代码如下:
theFilePath=inportFromExcelForm.getMyFile().getPath();
InputStream is=new FileInputStream(theFilePath);
这里theFilePath的值为C:\Documents and Settings\yyy1314\桌面\E06.xls也就是说本地的程序取得路径后是根据(C:\Documents and Settings\yyy1314\桌面\E06.xls)在本地找相关文件
所以找不到那我应该怎样才能读取到异地的文件或是文件路径呢?
先谢谢了
你做b/s 要用到组件,但是做c/s就没那必要了.
给个我写的上传给你瞧瞧,其实蛮简单的.
jsp
<html:file property="adImage"/>
actionDynaValidatorForm dvf=(DynaValidatorForm)form;
FormFile adImage=(FormFile)dvf.get("adImage");
byte[] image=adImage.getFileData();Daopublic boolean addAd(Ad ad) {
Ad old_ad=(Ad)this.getHibernateTemplate().get(Ad.class, ad.getAdName());
if(old_ad==null){
this.getHibernateTemplate().save(ad);
return true;
}
return false;
}
InputStream is=new FileInputStream(theFilePath);
这里theFilePath的值为C:\Documents and Settings\yyy1314\桌面\E06.xls
这里应该是有问题的.其实服务器接受文件上传应该和服务器的磁盘没关系的.
你从输入流中获得上传的文件,并不是从磁盘获得.
InputStream is=new FileInputStream(theFilePath);
这是啥子哦?
别人电脑上的东西在你的电脑上找肯定找不到哦。
以前用File只能读本地的
改用FormFile后就行了
谢谢各位呵
结贴啦