Jfinal附件上传与重命名

                    

前台代码: app

    选择附件:                                  提交            这里须要注意在form中必须指明编码格式:enctype="multipart/form-data"   设置表单的mime编码,默认状况下这个编码格式是application/x-www.form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,该编码下上传二进制数据;       注意:在以上这种编码的状况下,由于上传的是二进制数据,因此request是得不到输入框数据的,咱们能够经过上传组件获取表单中的输入信息。 后台代码:   String mHttpUrl=request.getRealPath("")+"\\uploadFiles\\";   int maxSize = 10 * 1024 * 1024;              //10M   UploadFile  upFile = getFile("FILE", mHttpUrl, maxSize, "utf-8");  在Jfinal中以上三句就已经完成了文件上传,固然,咱们的前提是在lib中引入cos-26Dec2008.jar包  以上采用getFile方法实现上传单个文件,还能够经过getFiles实现批量上传  以上getFile 参数1是表单file的域名称              参数2是上传文件存放的绝对路径              参数3是文件的最大长度[即文件的大小]              参数4是指定文件编码   上传的文件自定名称保存       修改上传文件的名称【目前】本人阅读开源社区及我的使用有两种解决方案:       1.在文件进行保存时进行修改文件命名       2.先完成文件上传再进行重命名       根据本人的实际状况[俺还不是高手],选择第二种方案比较靠谱,由于第一种方案须要咱们对Jfinal相关jar包进行自定义或重写相关方法再打包再使用。      第二种方案实现也就一句话,很方便以下:      ...紧接以上的代码段      File f = upFile.getFile();      f.renameTo(File file);      这样就实现了对所上传的文件的重命名,这里的重命名文件写法如:      new File(mHttpUrl+System.currentTimeMillis()+"."+type);      这里用的是时间戳命名。type是文件类型:如jpg,doc[这个能够本身想办法截取] 注意啦----有个小重点 这里还有一个关键问题就是form中的非file域的值的获取 Jfinal中咱们获取表单中的文本域中与url传递参数的值至关方便,getpara()就能够了,可是上面咱们已经说了二进制值这种获取方式用不上,具体获取办法以下:    String para= getMultipartRequest().getParameter("para"); 这里还要注意一点,以上获取除file类型的文本域之外的字段值时,咱们必须保证文件已经完成保存,即getFile这个方法已经执行。
相关文章
相关标签/搜索