如何检测这是一个有效的VALID二进制STL(立体光刻)文件

时间:2011-09-11 11:39:31

标签: stl ascii

我有一个html表单,用户上传二进制文件或ascii stl files。但是我想确保只上传有效的二进制文件和ascii文件。如果用户将PDF文件的扩展名更改为.stl(3D二进制文件和ascii stl文件的扩展名),则代码必须检测到它是一个无效的stl文件。

1 个答案:

答案 0 :(得分:4)

引用wikipedia

An ASCII STL file begins with the line:

`solid name`

where name is an optional string (though if name is omitted there must still be a space after solid). 

因此,要确认ASCII STL,请在第一行检查'^ solid(name)?$'。

要确定文件是否为二进制STL,请利用偏移量80处的长度字段。它指定文件中的三角形数。

因此,要确认二进制STL文件,请检查以下表达式:

filesize == UINT32@80 * 50 + 84

这里的数字84是二进制STL标题的总大小(80字节)和标题后面的一个4字节数字(三角形的数量)。