返回列表 发帖

[Struts2和WW] 关于文件上传后目标文件夹无显示的问题

我看了《Struts 2权威指南--基于WebWork核心的MVC开发》的光盘源代码。对于第6章--文件的上传和下载的上传例子,我每次操作都可以在成功页面看到上传后的图片,却不能在自己建立的的upload文件夹(WebContent文件夹下,与WEB-INF同级目录)看到任何文件,不知为什么?

下面的代码:
  1. FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getUploadFileName());//getSavePath为upload
  2. FileInputStream fis = new FileInputStream(getUpload());
  3. byte[] buffer = new byte[1024];
  4. int len = 0;
  5. while ((len = fis.read(buffer)) > 0)
  6. {
  7. fos.write(buffer , 0 , len);
  8. }
复制代码

是因为没做fileCopy吗?

希望朋友们能在百忙之中指点一二,谢谢。

提问赏金:10金币
获奖名单 : nosorry(10金币)    

上传可以看到图片就表明你的文件上传成功,至于你在指定位置找不到,
只能说明你设定的文件上传路径有问题。

看你的程序,你将上传的文件放在了getSavePath() + "\\" + getUploadFileName()位置啊。
你可以试试把getSavePath() + "\\" + getUploadFileName()这个值打印出来看看,这样就找到你上传文件的位置了。

TOP

原帖由 nosorry 于 2009-9-23 19:11 发表
上传可以看到图片就表明你的文件上传成功,至于你在指定位置找不到,
只能说明你设定的文件上传路径有问题。

看你的程序,你将上传的文件放在了getSavePath() + "\\" + getUploadFileName()位置啊。
你可以试试把getSaveP ...

首先感谢你的回复!
我打印出了Path(getSavePath() + "\\" + getUploadFileName()),内容为:
C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\mySimpleUpload\upload\logo.jpg
我想让它出现在自己项目的upload文件夹里,例如:
C:\workspace\mySimpleUpload\WebContent\upload
该怎么办呢?为什么它默认不存到我的项目目录下?
附上Struts2的配置文件:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6.         <constant name="struts.custom.i18n.resources" value="globalMessages"/>
  7.         <constant name="struts.i18n.encoding" value="GBK"/>
  8.         <package name="lee" extends="struts-default">
  9.                 <action name="upload" class="lee.UploadAction">
  10.             <param name="savePath">/upload</param>
  11.                         <result>/succ.jsp</result>
  12.                 </action>               
  13.         </package>
  14. </struts>
复制代码

和Action的getSavePath()方法:
  1. private String getSavePath() throws Exception
  2.         {
  3.         return ServletActionContext.getRequest().getRealPath(savePath);
  4.     }
复制代码

这里的“getRealPath”在Eclipse里是删除线的状态,如果是这里的问题,用什么方法可以得到本地(或服务器端)的upload文件夹呢?

TOP

简单,把您的程序从eclipse中导处发布到服务器中(放到tomcat的webappes中就行)就好了,你程序没有任何问题,是eclipse的"过",他在运行期间维护一个属于他的虚拟目录。
拼到底,输赢无所谓

TOP

我碰到同样的问题,试一下,不起作用!
Path(getSavePath() + "\\" + getUploadFileName()),内容为:
   D:\Tomcat6.0\apache-tomcat-6.0.18\webapps\FileUpload2\upload\we.jpg
   项目打成war包放到tomcat的webappes中,还是不能建立upload的文件夹

TOP

返回列表