我在本地上运得程序读取文件时,没有问题,因为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)在本地找相关文件
所以找不到那我应该怎样才能读取到异地的文件或是文件路径呢?
先谢谢了

解决方案 »

  1.   

    上传 用SmartUpload吧 很好用的
      

  2.   

    二楼说的对.
    你做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;
    }
      

  3.   

    theFilePath=inportFromExcelForm.getMyFile().getPath(); 
    InputStream   is=new   FileInputStream(theFilePath); 
    这里theFilePath的值为C:\Documents   and   Settings\yyy1314\桌面\E06.xls 
    这里应该是有问题的.其实服务器接受文件上传应该和服务器的磁盘没关系的.
    你从输入流中获得上传的文件,并不是从磁盘获得.
      

  4.   

    theFilePath=inportFromExcelForm.getMyFile().getPath(); 
    InputStream   is=new   FileInputStream(theFilePath); 
    这是啥子哦?
    别人电脑上的东西在你的电脑上找肯定找不到哦。
      

  5.   

    搂主要实现什么功能呢,是要客户端上传文件吗,那就应该在客户端选择要上传的文件,然后在服务端调用类SmartUpload的函数处理上传文件.
      

  6.   

    问题已解决
    以前用File只能读本地的
    改用FormFile后就行了
    谢谢各位呵
    结贴啦