我现在做一个Struts1+hibernate多附件的上传和下载程序 不知道如何下手,谁能指点下迷津,很急啊 最好有完整的代码示例,谢谢了啊
------解决方案--------------------------------------------------------
楼主可参考这个:http://www.blogjava.net/hijackwust/archive/2007/08/22/138598
------解决方案--------------------------------------------------------
使用jquery-uploadify插件,网上的实例:http://www.jb51.net/article/21888.htm
- Java code
<script type="text/javascript">$(document).ready(function() { $("#uploadify").uploadify({ 'uploader' : 'js/uploadify.swf', 'script' : 'UploadServlet',//后台处理程序的相对路径 'cancelImg' : 'images/cancel.png', 'folder' : 'uploads', 'queueID' : 'fileQueue', 'auto' : true,//是否自动上传。true为自动上传 'multi' : false//是否可以进行多文件上传。只是设置在框框内显示的文件的个数。true为可以显示多个 });});</script></head><body><div id="fileQueue"></div><input type="file" name="uploadify" id="uploadify" /><br><p><a href="javascript:$('#uploadify').uploadifyUpload()">上传</a>|<a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消上传</a></p></body></html>
------解决方案--------------------------------------------------------
上传下载 和hibernate没什么关系,只有保存实体数据时才有!
多附件上传,无非处理form提交时判断客户端的muti data元素,控制好文件类型的过滤,大小等就可以了
------解决方案--------------------------------------------------------
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
public class FilesUploadAction {
private File[] image;
private String[] imageFileName;
public File[] getImage() {
return image;
}
public void setImage(File[] image) {
this.image = image;
}
public String[] getImageFileName() {
return imageFileName;
}
public void setImageFileName(String[] imageFileName) {
this.imageFileName = imageFileName;
}
public String addUI(){
return "success";
}
public String execute() throws Exception{
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
if(image!=null){
File savedir = new File(realpath);
if(!savedir.exists()) savedir.mkdirs();
for(int i = 0 ; i<image.length ; i++){
File savefile = new File(savedir, imageFileName[i]);
FileUtils.copyFile(image[i], savefile);
}
ActionContext.getContext().put("message", "上传成功");
}
return "success";
}
}
------解决方案--------------------------------------------------------
- Java code
package com.cj.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport{// 一个文件域对应三个字段 private File pic;//对应jsp中文件域的name private String picFileName;//对应文件的名字 private String picContentType;//文件类型 private String savePath;//保存路径,使用动态配置 @Override public String execute() throws Exception { // TODO 自动生成方法存根 String pfile = getSavePath() + "\\" + picFileName;//设置保存路径 FileInputStream fis = new FileInputStream(pic); byte b[] = new byte[fis.available()];//设置最大数组空间 FileOutputStream fos = new FileOutputStream(pfile); fis.read(b); fos.write(b); fis.close(); fos.close(); return SUCCESS; } public File getPic() { return pic; } public void setPic(File pic) { this.pic = pic; } public String getPicContentType() { return picContentType; } public void setPicContentType(String picContentType) { this.picContentType = picContentType; } public String getPicFileName() { return picFileName; } public void setPicFileName(String picFileName) { this.picFileName = picFileName; } public String getSavePath() { return ServletActionContext.getServletContext().getRealPath(savePath); } public void setSavePath(String savePath) { this.savePath = savePath; } }