前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >.ofd文件获取不到type,如何用JS判断其文件类型

.ofd文件获取不到type,如何用JS判断其文件类型

作者头像
德顺
发布于 2024-03-07 01:22:33
发布于 2024-03-07 01:22:33
65300
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:0
代码可运行

最近在做一个文件上传的时候遇到一个问题,.ofd 文件取不到 type 文件类型。

从下面的截图可以看到,.png 图片,是可以取到 typeimage/png.ofd 文件的 type 是空的。

什么是 OFD 文件?

OFD 是一种基于 XML 的文件格式,用于存储文档内容、布局和样式。

它支持文本、图像、矢量图形、表格等多种元素。

OFD 文件通常用于电子文档、报告、合同等场景。

判断 OFD 文件类型的方法

下面通过两个示例介绍一下通过 JavaScript 判断 .ofd 文件的类型。

1. 根据文件后缀名判断

我们可以通过检查文件的后缀名来判断文件是否为 OFD 类型。以下是一个示例函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function checkFile(fileValue) {
    var index = fileValue.lastIndexOf(".");
    var fileValueSuffix = fileValue.substring(index); // 获取文件后缀

    if (fileValueSuffix.toLowerCase() === ".ofd") {
        return "OFD"; // 文件是 OFD 类型
    } else {
        return "其他类型"; // 文件不是 OFD 类型
    }
}

// 示例用法
var fileName = "example.ofd";
var fileType = checkFile(fileName);
console.log("文件类型:" + fileType);
2. 读取文件的二进制信息判断

我们可以使用 FileReader 读取 OFD 文件的二进制数据,然后解析文件的结构化信息。以下是一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { parseOfdDocument, renderOfd } from 'ofd.js';

function fileChanged(e) {
    const file = e.target.files[0];

    parseOfdDocument({
        ofd: file,
        success: function(res) {
            const screenWidth = 800;
            const divs = renderOfd(screenWidth, res[0]);

            // 将 divs 渲染到页面中
            // ...
        },
        fail: function(err) {
            console.error('OFD 文件渲染失败', err);
        }
    });
}

OFD 文件是一种重要的电子文档格式,我们可以使用 JavaScript 来判断文件是否为 OFD 类型。希望本文对你有所帮助!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.ofd文件获取不到type,如何用JS判断其文件类型
最近在做一个文件上传的时候遇到一个问题,.ofd 文件取不到 type 文件类型。
德顺
2024/03/29
5830
.ofd文件获取不到type,如何用JS判断其文件类型
npm包file-type之文件类型
最近做一个需求,只是单纯的图片上传,结果测试出现图片上传成功,但是放到产品里面黑了,而且只是两张图片会这样,本来打算是暂不解决,因为找不出问题。后来产品说最好能研究一下为什么。
wade
2021/07/30
1.3K0
npm包file-type之文件类型
文件上传杂谈
文件上传是前端很常见的一类场景。图片、视频和文档等等都属于文件范畴,每个文件则是通过 File.Type 进行更细的划分。本文将针对文件上传的一些通用维度场景做简单的剖析和尝试,抛砖引玉,希望共同学习,共同成长。
有赞coder
2021/01/18
1.6K0
文件上传杂谈
如何使用FormData上传压缩裁剪后的图片Blob对象
在前端页面,我们通常会遇到需要用户上传图片的操作,可能还会在前端进行图片编辑的操作(比如头像的选区裁剪),然后如果图片过大的话,我们还会对图片进行压缩。这些功能我们通常通过Canvas来进行,最后使用Canvas API函数toDataURL来得到图片的Base64字符串,然后当我们要上传到后台的时候,会面临2种选择:
一斤代码
2018/08/21
3.6K0
如何使用FormData上传压缩裁剪后的图片Blob对象
node.js获取图片文件的真实类型
遇到一个需求:假定有一个图片文件,真实的类型为jpg,而有人偷懒把jpg直接复制一张,存为同名的png文件,这样在as3读取文件时不会遇到问题,但手机c++在读取文件时却遇到问题了 - -!
meteoric
2018/11/16
6.4K0
实战 | 文件上传漏洞之最全代码检测绕过总结
文件上传漏洞是指攻击者上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。该漏洞在业务应用系统中出现概率较高,究其原因是业务场景中上传附件、头像等功能非常常见,若在系统设计中忽略了相关的安全检查,则容易导致文件上传漏洞。
HACK学习
2022/02/17
15.2K1
实战 | 文件上传漏洞之最全代码检测绕过总结
TP漏洞之文件上传总结
一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。
php007
2019/10/29
1.9K0
TP漏洞之文件上传总结
大文件上传与流下载
在现代网站中,越来越多的个性化图片,视频,去展示,因此我们的网站一般都会支持文件上传。今天我们以大文件上传和下载为主题来分享总结一下.
用户10501441
2024/11/24
2770
大文件上传与流下载
常见文件的mine type类型及获取方法
前面提到Kangle 服务器添加 mine type 文件类型,但是网上给出的文件类型难免没有那我全面,往往我们正需要的网上却没有。
德顺
2019/11/13
5.5K2
React+NodeJs实现文件切片上传
注意: (1) 文件类型是Blob,是二进制格式,参考: https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsArrayBuffer
进击的小进进
2020/02/24
2.9K5
React+NodeJs实现文件切片上传
对象储存cos-腾讯云对象储存cos
COS是腾讯云提供的对象存储服务,功能非常强大,可以作为文件服务器,CDN加速,静态网页服务,还提供了图片的常用操作。
张天华
2019/08/01
25.1K0
对象储存cos-腾讯云对象储存cos
nods.js 从入门到精通教程
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
张哥编程
2024/12/13
2410
nods.js 从入门到精通教程
前端读取Excel报表文件
在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写
书童小二
2018/09/03
4.5K0
前端读取Excel报表文件
Upload-labs 通关学习笔记
使用障眼法,将PHP文件修改图像格式后直接上传;使用burp拦截该数据包,修改文件格式(后缀名)
Mirror王宇阳
2020/11/13
4.4K0
Upload-labs 通关学习笔记
SpringBoot上传文件类型检测「建议收藏」
当我们在项目中需要实现上传文件的时候, 为了安全起见以及限制文件上传的类型, 我们需要判断上传文件的类型是否符合我们的需求, 防止将病毒木马和非必要的文件上传到服务器上,占用服务器硬盘空间。
全栈程序员站长
2022/06/30
2.8K0
jsp页面上传文件,下载文件,设置下载文件格式和预览文件
jsp页面上传文件,下载文件,设置下载文件格式和预览文件
Java架构师必看
2021/05/14
2.5K0
文件下载,搞懂这9种场景就够了
在 文件上传,搞懂这8种场景就够了 这篇文章发布之后,阿宝哥收到了挺多掘友的留言,感谢掘友们一直以来的鼓励与支持。其中掘友 @我的烟雨不在江南 和 @rainx 在文章底部分别发了以下留言:
童欧巴
2021/08/20
3.3K0
文件下载,搞懂这9种场景就够了
面试官昨天问我对base64的理解,着实被问懵了
我们知道一个字节可表示的范围是 0 ~ 255(十六进制:0x00 ~ 0xFF), 其中 ASCII 值的范围为 0 ~ 127(十六进制:0x00 ~ 0x7F);而超过 ASCII 范围的 128~255(十六进制:0x80 ~ 0xFF)之间的值是不可见字符。
用户3806669
2021/03/25
4.7K0
面试官昨天问我对base64的理解,着实被问懵了
Blob、ArrayBuffer、File、FileReader和FormData的区别
Blob、ArrayBuffer、File、FileReader、FormData这些名词总是经常看到,知道一点又好像不知道,像是同一个东西好像又不是,总是模模糊糊,最近终于下决心要弄清楚。
码客说
2019/10/22
5.2K0
前端本地文件操作与上传
前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发:
IT派
2018/08/10
1.7K0
前端本地文件操作与上传
相关推荐
.ofd文件获取不到type,如何用JS判断其文件类型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档