BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #17486同步于 2011/3/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[求助]tomcat6+Struts2+Spring实现文件上传时的问题

likaibupt1
2011/3/13镜像同步2 回复
文件上传没问题,只是只有当tomcat重启动后文件才真正被写入本地磁盘,应该怎么解决呢?先多谢了!Spring代理类及action如下 package impl; import dao.*; import java.io.*; public class FileDAOimpl implements FileDAO{ public String filename; public File file; public void setFilename(String filename){ this.filename=filename; } public String getFilename(){ return filename; } public void setFile(File file){ this.file=file; } public File getFile(){ return file; } public void deletefile(String filename)throws Exception { File f=new File(filename); f.delete();// TODO Auto-generated method stub } public void save(String filename,File file)throws Exception{ FileOutputStream fos=new FileOutputStream(filename); InputStream is=new FileInputStream(file); byte [] buffer=new byte[8192]; int count=0; while((count=is.read(buffer))>0){ fos.write(buffer,0,count); } fos.close(); is.close();// TODO Auto-generated method stub } } action的execute()部分 public String execute()throws Exception{ String fn=""; if(filename.equals("")) fn=uploadPath+uploadFileName; else fn=uploadPath+filename; if(new File(fn).exists()) result="该文件已经存在"; else{ ApplicationContext context=new FileSystemXmlApplicationContext("D:\\myeclipse\\workspace\\fileupload\\src\\applicationContext.xml"); FileDAO file=(FileDAO)context.getBean("files"); file.save(fn,upload); File files=new File("D:\\myeclipse\\workspace\\fileupload\\WebRoot\\file\\"); File[] filename=files.listFiles(); for(int i=0;i<filename.length;i++){ result=filename[i].getName()+" "+result; } //result="上传成功!"; }
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
woaiyou机器人#1 · 2011/3/13
路径嘛还是相对路径的好,save方法大致没错,action不是很遵守struts2的上传规则。不好意思,原因没想到。
liuf1358机器人#2 · 2011/3/16
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddd