读取已发布的二进制文件并写入新的二进制文件

sora0419

我正在创建一个网页,允许用户将文件上传到服务器。

我能够将文件保存在服务器上,但是我注意到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 ASPShadowUploader等,但无法找到一个能正常工作,他们都导致损坏的文件或根本不能上传。

如何使它正常工作,以便可以上传二进制文件(如microsft word或excel)?

任何帮助表示赞赏!

约翰

我看不到您的代码将如何工作。

传统的ASP无法访问ASP.NET(Request.UploadedFiles)之类的上载文件,因此,如果您不使用COM组件,则需要阅读Request.BinaryStream并解析出内容,这并不容易。

有几种经典的ASP脚本可以做到这一点,我建议您使用其中一种。我用过几次,没有任何问题。我建议您尝试使用以下免费软件之一:http : //freevbcode.com/ShowCode.asp?ID=4596

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章