ASP实现网页打开任何类型文件都提示保存的方法
在日常的网络浏览过程中,我们经常会遇到这样的情况:点击一个链接后,会根据客户端机器是否安装了Office软件,决定是直接打开Word文件还是弹出保存对话框。这是因为浏览器在尝试理解文件的类型,并据此决定如何处理这个文件。有时候我们可能希望无论文件类型如何,都直接让客户端保存文件,而不是尝试打开它。为了满足这一需求,我们可以借助ASPUpload组件的SendBinary方法来实现。
对于存储在服务器硬盘上的文件,我们可以使用以下代码来实现这一需求:
```asp
<%
Dim Upload, FilePath
Set Upload = Server.CreateObject("Persits.Upload")
FilePath = Server.MapPath(".") & "\" & "2003529213019.txt"
'SendBinary参数说明:
'参数一:文件物理路径
'参数二:是否将文件的MIME类型等信息传送给浏览器
'参数三:文件类型,可以指定具体的MIME类型,但一般都可以使用application/octet-binary
'参数四:让客户端保存文件还是直接打开。True保存;False(默认)打开
Upload.SendBinary FilePath, True, "application/octet-binary", True
%>
```
而对于存储在数据库中的文件,处理方式稍有不同。我们可以通过以下代码实现:
```asp
<%
Dim objConn, objRs
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRs = Server.CreateObject("ADODB.RecordSet")
objConn.Open "Driver={Microsoft Aess Driver (.mdb)};dbq=" & Server.MapPath("db1.mdb")
objRs.Open "select from t5 where id=2", objConn, 1, 3
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment;filename=" & objRs("filename")
Response.AddHeader "Content-Length", CStr(objRs("size")) '此处必须用CStr转换
Response.BinaryWrite objRs("file")
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>
```
这种方法要求保存文件时需要同时保存文件名和文件大小。如果未指定文件名和大小,浏览器会根据其默认行为处理文件:如果认识文件类型,则自动打开;如果不认识,则提示用户保存。通过这种方式,我们可以确保无论文件的来源和类型如何,都能让用户直接保存文件,而不是在客户端尝试打开它。这样的处理方式增强了用户体验,确保了文件的正确传输。
编程语言
- ASP实现网页打开任何类型文件都提示保存的方法
- BootStrap Table复选框默认选中功能的实现代码(从数
- 简述JavaScript中正则表达式的使用方法
- 详解在WebStorm中添加Vue.js单文件组件的高亮及语法
- Mysql 5.6添加修改用户名和密码的方法
- js调用屏幕宽度的简单方法
- asp.net+ajax+sqlserver自动补全功能实现解析
- 关于Yii中模型场景的一些简单介绍
- 使用webpack4编译并压缩ES6代码的方法示例
- 浅谈Servlet转发到JSP页面的路径问题(必看)
- JavaScript设计模式经典之工厂模式
- Angularjs中的ui-bootstrap的使用教程
- php实现阿拉伯数字和罗马数字相互转换的方法
- javascript实现图像循环明暗变化的方法
- JS动态插入并立即执行回调函数的方法
- 微信小程序dom操作的替代思路实例分析