You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JVX框架中使用ProjXUtil.uploadFile上传文件时如何验证文件类型与大小?

验证文件类型与大小的解决方案

由于ProjXUtil.uploadFile本身不支持传入类型/大小校验参数,只能在调用该函数之前手动完成前置校验,具体实现步骤如下:

1. 获取待上传的文件对象

先从文件选择入口(比如前端的<input type="file">控件、后端的请求文件流)中拿到目标文件的原始对象,示例代码(前端场景):

// 假设文件选择器的DOM ID为fileInput
const fileInput = document.getElementById('fileInput');
const selectedFile = fileInput.files[0];

2. 文件类型校验

根据业务需求定义允许的文件范围,可通过MIME类型或文件后缀名两种方式校验:

// 方式1:基于MIME类型校验(示例允许图片和PDF)
const allowedMimeTypes = ['image/jpeg', 'image/png', 'application/pdf'];
const isTypeValid = allowedMimeTypes.includes(selectedFile.type);

// 方式2:基于文件后缀名校验(兼容MIME识别不准的情况)
const allowedExtensions = ['.jpg', '.jpeg', '.png', '.pdf'];
const fileExtension = selectedFile.name.slice(selectedFile.name.lastIndexOf('.')).toLowerCase();
const isTypeValid = allowedExtensions.includes(fileExtension);

3. 文件大小校验

设置最大允许文件大小(比如5MB,换算为字节是5*1024*1024),通过文件的size属性判断:

const maxAllowedSize = 5 * 1024 * 1024; // 5MB
const isSizeValid = selectedFile.size <= maxAllowedSize;

4. 校验通过后执行上传

只有当类型和大小都符合要求时,才调用上传函数:

if (isTypeValid && isSizeValid) {
  // 执行原上传逻辑
  ProjXUtil.uploadFile(this, new Var(mdbDokumente, "FILENAME"), new Var(mdbDokumente, "FILE_"));
} else {
  // 校验失败时给出提示
  alert('文件类型或大小不符合要求,请重新选择');
}

补充说明

如果是后端场景,核心逻辑依然是先读取文件元数据→完成校验→再调用上传函数,仅获取文件信息的方式需要根据后端框架调整(比如从请求体中读取文件流的大小、文件名等)。

内容的提问来源于stack exchange,提问作者Stefan Wurm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:28:20