做文件上传的时候,规定用户可以同时上传5个文件,然后用hibernate来进行存储,但只能存储最后一条,不知道为什么,求高人解答
源代码如下:
public class UpLodeSourceAction extends Action {
/*
* Generated Methods
*/ /**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { UpLodeSourceForm uplodeForm = (UpLodeSourceForm) form;// TODO
TbuserDAO TbuserDao = new TbuserDAO();
TbsourceDAO TbsourceDao = new TbsourceDAO();
Tbsource source = new Tbsource();
Tbuser CurrentUser = TbuserDao.findById(1);
FormFile[] myfileArray = new FormFile[5];
myfileArray[0] = uplodeForm.getMyfile();
myfileArray[1] = uplodeForm.getMyfile1();
myfileArray[2] = uplodeForm.getMyfile2();
myfileArray[3] = uplodeForm.getMyfile3();
myfileArray[4] = uplodeForm.getMyfile4();
// FormFile myfile = uplodeForm.getMyfile();
String[] filename = new String[5];
String[] desPath = new String[5]; //目的地址
String[] desCription = new String[5]; //去掉后缀的文件名
String[] freFix = new String[5]; //文件的后缀。
int bytesum = 0;
byte[] byteread = new byte[1444];
for (int i = 0; i < 5; i++) {
if(myfileArray[i].getFileSize() !=0){
Session session = TbsourceDao.getSession();
session.getTransaction().begin();
Random ran = new Random();
int num = ran.nextInt(100);
filename[i] = myfileArray[i].getFileName();
// 取得文件存放的目的位置。。
freFix[i] = filename[i].substring(filename[i].lastIndexOf(".")+1).toLowerCase();
desCription[i] = filename[i].substring(0,filename[i].indexOf("."));
desPath[i] = "D://Program Files//attach//"+Mytool.getfiledate()+num+"."+freFix[i];
System.out.println(desCription[i]);
System.out.println(desPath[i]);
//将数据存入数据库
source.setSourceDate(Mytool.getdate());
source.setSourceDescription(desCription[i]);
source.setSourcePath(desPath[i]);
source.setTbuser(CurrentUser);
session.save(source);
session.getTransaction().commit();
}
}
return null; }
}
源代码如下:
public class UpLodeSourceAction extends Action {
/*
* Generated Methods
*/ /**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { UpLodeSourceForm uplodeForm = (UpLodeSourceForm) form;// TODO
TbuserDAO TbuserDao = new TbuserDAO();
TbsourceDAO TbsourceDao = new TbsourceDAO();
Tbsource source = new Tbsource();
Tbuser CurrentUser = TbuserDao.findById(1);
FormFile[] myfileArray = new FormFile[5];
myfileArray[0] = uplodeForm.getMyfile();
myfileArray[1] = uplodeForm.getMyfile1();
myfileArray[2] = uplodeForm.getMyfile2();
myfileArray[3] = uplodeForm.getMyfile3();
myfileArray[4] = uplodeForm.getMyfile4();
// FormFile myfile = uplodeForm.getMyfile();
String[] filename = new String[5];
String[] desPath = new String[5]; //目的地址
String[] desCription = new String[5]; //去掉后缀的文件名
String[] freFix = new String[5]; //文件的后缀。
int bytesum = 0;
byte[] byteread = new byte[1444];
for (int i = 0; i < 5; i++) {
if(myfileArray[i].getFileSize() !=0){
Session session = TbsourceDao.getSession();
session.getTransaction().begin();
Random ran = new Random();
int num = ran.nextInt(100);
filename[i] = myfileArray[i].getFileName();
// 取得文件存放的目的位置。。
freFix[i] = filename[i].substring(filename[i].lastIndexOf(".")+1).toLowerCase();
desCription[i] = filename[i].substring(0,filename[i].indexOf("."));
desPath[i] = "D://Program Files//attach//"+Mytool.getfiledate()+num+"."+freFix[i];
System.out.println(desCription[i]);
System.out.println(desPath[i]);
//将数据存入数据库
source.setSourceDate(Mytool.getdate());
source.setSourceDescription(desCription[i]);
source.setSourcePath(desPath[i]);
source.setTbuser(CurrentUser);
session.save(source);
session.getTransaction().commit();
}
}
return null; }
}
if(null!=userhobbies && userhobbies.length>0){
String hobby="";
for (String h : userhobbies) {
hobby+=h+",";
}
uif.setHobbl(hobby.substring(0,hobby.length()-1));
}