SSH文件上传的简单例子

/**上传文件的在 form 那里一定要加 “enctype="multipart/form-data"” 不然会出现TabelA...的错误**/


<s:form action="/Tvmakecheck/save.do" method="post" enctype="multipart/form-data">




<script type="text/javascript">
function addFile(){
var temp = $("#addmyfile").html() + "<BR/>&nbsp;&nbsp;"+"<input type=\"file\" name=\"myFile\"> ";
$("#addmyfile").html(temp);
}
</script>






<td >
            <div id="addmyfile">
            &nbsp;&nbsp;<input type="file" name="myFile" id="myFile"> 
            </div>
&nbsp;&nbsp;<a href="#" οnclick="addFile(); return false;">+ 添加</a>
            </td>




/**Action 代码开始**/
/**在返回的时候不能直接返回List界面,应为没有接值,所以先到 LIST_ACTION = "!/Tvmakecheck/list.do";  进行一次缓存**/



private List<File> myFile;
private String affixurl;
private List<String> myFileFileName;

public List<String> getMyFileFileName() {
return myFileFileName;
}


public void setMyFileFileName(List<String> myFileFileName) {
this.myFileFileName = myFileFileName;
}


public String getAffixurl() {
return affixurl;
}


public void setAffixurl(String affixurl) {
this.affixurl = affixurl;
}


public List<File> getMyFile() {
return myFile;
}


public void setMyFile(List<File> myFile) {
this.myFile = myFile;

}


/** 保存新增对象 
* @throws IOException */
public String save() throws IOException {
System.out.println("进入了方法");
String docCode = GenerrateUse.dateToString();//公文编号
tvmakecheck.setDocleader(docCode);
System.out.println("000000000:"+tvmakecheck.getDocleader());
tvmakecheck.setState("待处理");
tvmakecheckManager.save(tvmakecheck);

List<File> files = getMyFile();

// 上传、保存附件。


if (files==null) {
//return LIST_ACTION;
}else{
System.out.println("进入了文件");
//String rootUrlAffix ="/upload";
   String rootUrlAffix =ServletActionContext.getRequest().getRealPath("/upload") ;//上传的时候用这个路径
   String abc = "upload";//保存到数据库路径,在下载时才能用
        
  setAffixurl(rootUrlAffix);//将上传路径保存起来
  System.out.println("这是长度:"+files.size());
for (int i = 0; i < files.size(); i++) {
String filename = getMyFileFileName().get(i);
//System.out.println("保存文件到这里1");
String myFileName = //filename.substring(0,filename.lastIndexOf("."))+docCode.substring(0, 8) //文件名+日期
docCode + filename.substring(filename.lastIndexOf("."));// 公文编号加后缀名。


                    FileOutputStream fos;
                   
//获取上传到服务器的路径
                    System.out.println("开始执行上传");
fos = new FileOutputStream(getAffixurl()+ "\\" + myFileName);

FileInputStream fis = new FileInputStream((File) files.get(i));

byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);

}
// 公文编号,文件名,文件下载地址,上传人,上传时间
Tvdocuments tvdocuments = new Tvdocuments();
tvdocuments.setDoccode(docCode);
tvdocuments.setFileName(filename);
tvdocuments.setUploadTime(new Date());
tvdocuments.setAnnexUrl(abc + "/" + myFileName);
tvdocumentsManager.save(tvdocuments);
System.out.println("执行完毕!!!");

}
}

return LIST_ACTION;

}

/**Action 代码结束**/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值