woaicode的gravatar头像
woaicode 2014-08-07 14:20:40

struts2文件上传可以成功,但为什么不上传到自己新建的工程upload文件夹里面呢?

我用的是相对路径,却在D:\GtfMyProject\.metadata\.me_tcat\webapps\Struts2.1Project\upload里面

不在D:\GtfMyProject\Struts2.1Project\WebRoot\upload,同在一个Struts2.1Project.如图:struts2文件上传可以成功,但为什么不上传到自己新建的工程upload文件夹里面呢?

 public String execute() throws Exception {
  // TODO Auto-generated method stub
  String fileName=UUID.randomUUID()+"."+this.photoContentType.split("/")[1];
  String filePath=ServletActionContext.getServletContext().getRealPath("/")+"upload/"+fileName;
  File outFile=new File(filePath);
  InputStream inputStream=new FileInputStream(this.photo);
  OutputStream outputStream=new FileOutputStream(outFile);
  byte data[]=new byte[1024];
  int temp=0;
  while((temp=inputStream.read(data))!=-1){
   outputStream.write(data,0,temp);
  }
  inputStream.close();
  outputStream.close();
  System.out.println("文件名字:"+this.photo.getName());
  System.out.println("文件名字:"+this.photoFileName);
  System.out.println("文件路径:"+this.photo);
  System.out.println("文件名字:"+this.photoContentType);
  System.out.println("文件大小:"+this.photo.length());
  return null;
 }
所有回答列表(2)
最代码官方的gravatar头像
最代码官方  LV168 2014年8月7日

牛牛,你得分清楚工作目录(workspace)和部署目录(deploy)。

在eclipse开发是你的工作目录,所以eclipse默认的源码目录叫workspace

如果是普通java工程,一般是这样的结构:

project_name/

    src/

    bin/

编译后的classes会生成到bin下。

如果是java web工程,一般是这样的结构:

myeclipse

    src/

    WebContent/

eclipse

    src/

    WebRoot/

但这都是工作目录,只用来存放src和编译后的class

---------------------------------------------------------

当你配置好java web server后,如tomcat,resin,会自动将workspace编译后对应的文件发布到部署目录,部署目录可以自行定义,所以当你启动了java web server后,你上传的文件存放在部署目录的问题就很明了了。

评论(1) 最佳答案
woaicode的gravatar头像
woaicode  LV10 2014年8月7日

明白了,原来是这样,长知识了。。。。

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友