<#def title = "文件上传"/> <#def keyword = "ZhiqimUI"/> <#def desc = " 知启蒙文件上传提供了多种上传方法,支持表单上传、单文件上传,多文件上传,预览再上传等。"/> <#def prevUrl = "imageClipper.htm"/> <#def nextUrl = "uploadLarge.htm"/> ${zhiqim_com_header()} ${zhiqim_com_topnav("document")}
${zhiqim_com_ui("tutorial", "ui", "tool", "upload")}
${zhiqim_com_breadcrumb("文库", "教程", "文件上传")}
<#-- 标题 -->

文件上传:

知启蒙文件上传提供了多种上传方法,支持表单上传、单文件上传,多文件上传,预览再上传等。

<#-- 一、最简单文件上传 -->
一、最简单文件上传


1、最简文件上传,是初始化单个文件上传控件
2、参数只需要指定上传按钮id和上传成功事件onCompleted
3、在后台配置上下文环境属性upload.rootDir即可
<#-- 二、单文件上传(先预览后上传) -->
二、单文件上传(先预览后上传)


1、最简文件上传,是初始化单个文件上传控件
2、参数只需要指定上传按钮id和上传成功事件onCompleted
3、在后台配置上下文环境属性upload.rootDir
4、如果需要分成两步,先预览后上传,则增加预览处理
<#-- 三、多文件上传(先预览后上传,默认图片) -->
三、多文件上传(先预览后上传,默认图片)
1、最简文件上传,是初始化多个文件上传控件
2、参数只需要指定上传按钮id和上传成功事件onCompleted
3、在后台配置上下文环境属性upload.rootDir
4、如果需要分成两步,先预览后上传,则增加预览处理
<#-- 四、表单文件上传,可以含参数 -->
四、表单文件上传,可以含参数
${Htmls.toCallFrame()}
参数1:
参数2:
1、表单文件上传的特点是支持参数一起传递,采用multipart/form-data格式
2、把真实的文件上传按钮隐藏起来(各浏览器表现不一样,太不美观),使用一个button代替
3、提供一个span用户显示文件选择的路径,这里也可以设计成预览
4、上传button,和提供一个Action处理数据。如下: public class UploadFormAction implements Action, HttpdConstants { private static final Log log = LogFactory.getLog(UploadFormAction.class); @Override public void execute(HttpRequest request) throws Exception { String rootDir = request.getContextAttributeString(_SERV_UPLOAD_ROOT_DIR_); if (Validates.isEmptyBlank(rootDir) || !Files.mkDirectory(rootDir)) { request.setAlertMsg("未配置上传目录,不支持上传"); return; } HttpUploader uploader = new HttpUploader(); try {//最大支持2M uploader.parseHttpRequest(request, 2*1024*1024); String fileExt = uploader.getFileExt(); if(Validates.isEmpty(fileExt) || !Validates.isContain("jpg,png,gif", ",", fileExt)) { request.setAlertMsg("仅支持图片,请重新上传"); return; } //文件字节比较 byte[] content = uploader.getBytes(); if (!(Bytes.isGIZ(content) || Bytes.isPNG(content) || Bytes.isJPG(content))) { request.setAlertMsg("图片格式不正确,请重新上传"); return; } //读出参数 String param1 = uploader.getParameter("p1"); String param2 = uploader.getParameter("p2"); log.info("参数1:"+param1+",参数2:"+param2); //保存文件 String fileDir = Strings.addEndsWith(Files.toLinuxPath(rootDir), "/"); String fileName = Ids.longId() + "." + fileExt; uploader.writeToFile(fileDir + fileName); request.setAlertMsg("上传成功"); } catch(Exception e) { request.setAlertMsg("上传失败"); } finally { uploader.close(); } } }
${zhiqim_com_chapter()}
${zhiqim_com_footer()}