当前位置: 代码迷 >> Java Web开发 >> 关于下传和上载的有关问题
  详细解决方案

关于下传和上载的有关问题

热度:5644   发布时间:2013-02-25 21:16:17.0
关于上传和下载的问题
我现在做一个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;    }        }
  相关解决方案