efw 文件上传示例

概述

本示例展示了 efw 框架中文件上传功能的实现,特别演示了如何限制上传文件类型(仅允许.xlsx格式)。efw 框架提供了简洁的 API 来处理文件上传、保存和管理操作,同时支持文件类型验证。

核心文件

  1. 主页面: helloUpload.jsp
  2. 单文件上传处理: helloUpload_submit1.js
  3. 多文件上传处理: helloUpload_submitM.js

功能实现

1. 文件类型限制

前端限制

<input type="file" id="file1" accept=".xlsx">

后端验证

helloUpload_submit1.paramsFormat = {
    "#file1": "accept:xlsx;display-name:单文件选择框"
};

2. 单文件上传流程

  1. 用户选择文件
    • 通过 <input type="file" id="file1" accept=".xlsx"> 选择单个.xlsx文件
  2. 触发上传事件
    • 点击”执行”按钮调用 Efw('helloUpload_submit1')
  3. 服务器端处理
   // 清理并创建上传目录
   file.remove("upload");
   file.makeDir("upload");
   
   // 解析文件名
   var filePath = params["#file1"];
   var filename = filePath.split(/[\\\/]/g).pop();
   
   // 保存上传的文件
   file.saveSingleUploadFile("upload/" + filename);
  1. 返回结果
    • 获取上传目录文件列表
    • #divResult 中显示结果

3. 多文件上传流程

  1. 用户选择多个文件
    • 通过 <input type="file" id="fileM" multiple accept=".xlsx"> 选择多个.xlsx文件
  2. 触发上传事件
    • 点击”执行”按钮调用 Efw('helloUpload_submitM')
  3. 服务器端处理
   // 清理并创建上传目录
   file.remove("upload");
   file.makeDir("upload");
   
   // 保存所有上传的文件
   file.saveUploadFiles("upload");
  1. 返回结果
    • 获取上传目录文件列表
    • #divResult 中显示结果

技术亮点

1. 文件类型验证

前端验证

后端验证

2. 文件操作 API

目录管理

文件保存

文件列表

3. 参数处理

4. 结果返回

使用说明

1. 单文件上传

  1. 点击”选择文件”按钮选择单个.xlsx文件
  2. 点击”执行”按钮上传文件
  3. 上传结果将显示在页面底部

2. 多文件上传

  1. 点击”选择文件”按钮选择多个.xlsx文件(按住 Ctrl 或 Shift 选择多个)
  2. 点击”执行”按钮上传所有文件
  3. 上传结果将显示在页面底部

3. 文件存储

安全注意事项

1. 文件类型验证

2. 文件大小限制

3. 文件名处理

4. 访问控制

此示例展示了 efw 框架如何实现安全的文件上传功能,通过前后端双重验证确保只接受特定类型的文件,同时提供了完整的文件管理功能。