在最近的项目中,做的上传功能遇到的问题记录如下:
1:在上传页面中不但有上传的file还有需要填写的值,我用的是commons-fileupload-1.2.jar,commons-io-1.3.2.jar怎么去取传递的值?
例如://是否是文件属性file
if (!item.isFormField()&&!StringUtils.isEmpty(item.getName())){
fileName = item.getName();
//获取文件大小
//long sizeInBytes = item.getSize();
File file = new File(filePath);
if (!file.exists()) {
file.mkdirs();
}
File uploadedFile = new File(filePath+"\\"+fileName);
item.write(uploadedFile);
}else{
map.put(item.getFieldName(), new String(item.getString().getBytes("ISO-8859-1")));
}
备注: commons-fileupload是以"ISO-8859-1字符编码传递的,如果在后台取的是乱码,一定要进行转码,本人也在网上找过,但是好像只有上面的那种转码方式才可以。
上传文件的时候必须设置getResponse().setContentType("text/html;charset=utf-8");
下载文件的时候我采用的是流的方式,在用io流向浏览器输出文件的时候一定要设置
response.reset();
response.setContentType("application/msword;charset=UTF-8");//设置返回的文件类型 msword 是以word格式弹出下载框
response.addHeader("Content-Disposition", "attachment;filename=\"" + new String(fileName.getBytes("GBK"), "ISO8859_1") + "\"");//设置输出的文件名和文件
js格式化时间类型: new Date(solveTime).format("Y-m-d H:i:s") 这个solveTime必须是12563142000这样的
var time1 = new Date().format("yyyy-MM-dd HH:mm:ss");
var time2 = new Date().format("yyyy-MM-dd");