我有excel文件abc.xls,并使用命令提示符将其重命名为abc.doc。 我的要求是:我想上传一个正确的doc文件,但是在那里我只能检查上传文件的MIME类型,这是不够的。我想在上传doc文件之前确认它是一个文档,并且不允许用户上传abc.doc文件,因为它不是一个doc文件,它是一个excel文件。如何在通过网页上传文件之前阅读word文档
回答
在上传之前,您可能需要一个ActiveX对象来访问客户端系统上的文件内容。检查与JavaScript的字节数组找到它是否是一个真正的文档可能证明有趣的,虽然:-) 编辑:
function CheckWordDoc(filepath){
var fso, f, ts, s;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.getFile(filepath);
ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
while (!ts.AtEndOfStream) {
s = ts.ReadLine();
if (s.indexOf("Word.Document.8") != -1) {
ts.Close();
return true;
}
}
ts.Close();
return false;
}
http://www.piclist.com/techref/language/asp/vbs/vbscript/jsmthopenastextstream.htm http://msdn.microsoft.com/en-us/library/ hwfw5c59%28V = vs.85%29.aspx
从大小我们不能决定这是适当的文档文件 – baviskarss 2012-03-02 10:40:35
我知道。这就是为什么我说检查字节数组是否真的是一个真正的doc文件将会很有趣......旧的doc文件在结尾处似乎具有类似于“Word.Document.8”的内容。 docx文件是压缩的xml,偶尔会有“word /”文本定义节点......但是现在大多数浏览器都默认阻止ActiveX,因此我真的推荐上传文件并检查服务器上的字节,然后将其保存到磁盘。 – Elementenfresser 2012-03-03 08:04:08
因为OP在评论中写的:
你是在错误的轨道在这里,验证应该总是发生在服务器端,您可以添加额外的验证在客户端,但它不是必需的。你必须为一个简单的理由这样做:
客户可以随时规避客户端验证方法,因为客户端是完全在其控制下。因此,即使您实施您的验证方法来检查其文档或Excel文档,不良用户总是可以向您发送禁用验证的发布请求,并且您将获得Excel文档或病毒等。
这是一个核心的web编程原则:永远不要相信输入数据,你不能仅在客户端验证!
其次,您的验证在服务器上很容易完成。所以你应该上传任何文件(检查文件扩展名&大小),然后在服务器上验证!
- 1. 通过互联网在python上阅读文本文件
- 2. 通过网页上传大文件
- 3. 在通过http上传文件之前压缩文件
- 4. 如何在阅读文件之前更新文件的内容?
- 5. 如何阅读非IE浏览器上的word文档
- 6. 如何通过C#阅读pdf文件?
- 7. 阅读UWP中的MS WORD文档
- 8. Word文档的阅读索引(目录)
- 9. 阅读C#中的word文档
- 10. 阅读java中的微软word文档
- 11. 阅读并显示Word文档
- 12. 阅读Word文档的Java库
- 13. 阅读上传zip文件
- 14. 如何在GUI程序运行之前阅读文本文件
- 15. 如何阅读Microsoft Word文档中的彩色文本
- 16. 如何在PHP中阅读Word,Excell和PDF文档?
- 17. 如何在动态网站上轻松阅读xls文档?
- 18. 如何使用Lua上传文件(通过网页)?
- 19. 如何阅读Javascript文档?
- 20. 使用Office Word与PHP阅读文档文件
- 21. 通过网页编辑word文档的方式
- 22. 如何将当前活动的Word文档中通过的OpenXML
- 23. 如何确保上传的文件是MS Word文档?
- 24. 如何通过Google Data API将文件上传到Google文档?
- 25. 如何在matlab中读取word文档
- 26. 如何在asp.net中读取word文档
- 27. 在网页中编辑word文档
- 28. Android从网页上阅读文本
- 29. 制作Word文档嵌入在网页编辑或只读
- 30. 如何阅读来自apache poi的word文档中的注释?
可能的重复http://stackoverflow.com/q/71944/745359 – wintersolutions 2012-03-02 08:24:15
为什么你需要客户端验证?如果你不相信输入,你必须再次在服务器上检查它。我在问题链接中解决的解决方案如何? – wintersolutions 2012-03-02 16:59:09
如果我打开上传的文件,实际上不是doc文件,它会在ms字中打开时出现损坏的文件等错误。所以我正试图避免这个未来的问题。 – baviskarss 2012-03-03 05:35:01