我正在创建一个网页,允许用户将文件上传到服务器。
我能够将文件保存在服务器上,但是我注意到Office文件(例如word,excel)已损坏,无法打开。
我的界面非常简单
<form method="post" enctype="multipart/form-data" action="uploadFile.asp">
<p>Select a file:<br><input type=File size=30 name="file1"></p>
<input type=submit value="Upload">
</form>
在我的中uploadFile.asp
,我正在使用VBScript。我尝试读写二进制数据并直接将其写入。
Function SaveBinaryData(FileName, ByteArray)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
'Specify stream type - we want To save binary data.
BinaryStream.Type = adTypeBinary
'Open the stream And write binary data To the object
BinaryStream.Open
BinaryStream.Write ByteArray
'Save binary data To disk
BinaryStream.SaveToFile FileName, adSaveCreateOverWrite
End Function
Dim biData
biData = Request.BinaryRead(Request.TotalBytes)
SaveBinaryData "C:\Uploads\ww.xlsx", biData
就像我之前提到的,如果我上传一个excel或word文件,则该文件已损坏。但是,文本文件可以正常工作。
我尝试过其他解决方案,我在网上找到,如Pure ASP
,ShadowUploader
等,但无法找到一个能正常工作,他们都导致损坏的文件或根本不能上传。
如何使它正常工作,以便可以上传二进制文件(如microsft word或excel)?
任何帮助表示赞赏!
我看不到您的代码将如何工作。
传统的ASP无法访问ASP.NET(Request.UploadedFiles)之类的上载文件,因此,如果您不使用COM组件,则需要阅读Request.BinaryStream并解析出内容,这并不容易。
有几种经典的ASP脚本可以做到这一点,我建议您使用其中一种。我用过几次,没有任何问题。我建议您尝试使用以下免费软件之一:http : //freevbcode.com/ShowCode.asp?ID=4596
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句