在exe、dll、msi的文件属性中,查看详细信息,可见其版本号。在文件上传时,前端如何获取版本号呢?参考vs-version-info-js,该仓库可以实现需求。
首先,复制仓库内index.js、lib/*.js文件到自己的项目中。
projet
- src
- utils
- vsVersionInfo
- index.js
- 其他复制的文件
- components
- main.js
- 等等
在代码中应用
- 输入框选择文件
- 使用
FileReader读取文件的ArrayBuffer - 使用
vsVersionInfo.parseBytes获取文件详细信息
import vsVersionInfo from '@/utils/vsVersionInfo'
export default {
methods: {
selectFile(file) {
const reader = new FileReader()
reader.readAsArrayBuffer(file)
reader.onload = () => {
if (reader.result) {
try {
const a = vsVersionInfo.parseBytes(reader.result)
this.form.version = a[0].getVsVersionInfo().StringFileInfo['080404b0'].FileVersion
} catch (error) {
console.warn('获取版本号失败', this.form.version, error)
}
}
}
return false
}
}
}
FileVersion包含的文件的详细信息
{
CompanyName: "TODO: <xiaomi>"
FileDescription: "TODO: <Debug>"
FileVersion: "22.08.01.1246"
InternalName: "Mobile.dll"
LegalCopyright: "Copyright (C) 2022"
OriginalFilename: "Mobile.dll"
ProductName: "TODO: <MCEAutomation>"
ProductVersion: "2.0.0.0"
}