struts1.2和jquery.MultiFile.js实现多文件下传

struts1.2和jquery.MultiFile.js实现多文件上传MultiFile是个不错的多文件上传的插件,在和struts一起用的

struts1.2和jquery.MultiFile.js实现多文件上传

MultiFile是个不错的多文件上传的插件,在和struts一起用的时候要注意,Struts的ActionForm的getMultipartRequestHandler().getFileElements()方法返回的是一个Hashtable。在默认情况下,在上传多个件的时候,MultiFile会为上传的文件生成同name,这样,Action在取得文件的时候就会有问题,因为Hashtable的key是不能重复的,所以只能得到上传的最后一个文件,所以在上传的时候就需要为这件文件生成不同的key值,如下:

<html:form action="/uploadFile.do" method="post" enctype="multipart/form-data" onsubmit="$(':file').each(function(i){this.name=i;});return true;">   <html:file property="file" stylemaxlength="5"></html:file><br>   <html:submit /> </html:form>

?ActionForm实现如下:

public class FileUploadForm extends ActionForm {private FormFile file;public FormFile getFile() {return file;}public void setFile(FormFile file) {this.file = file;}}

?

Action实现如下:(做了一些简化操作,为了突出重点)

public class FileUploadAction extends Action {public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {//得到多个上传文件Hashtable forms = (Hashtable) form.getMultipartRequestHandler().getFileElements();}}

?

这样就可以实现多文件上传了。