【求助】关于实现图片直接另存(下载)的问题!

t_jian 2003-07-28 11:34:32
对于一个Web站点,创建一个图片附件,如:
<A href="t_1.jpg">Attachment</A>

有什么好的方案,让浏览者点击link后,图片直接下载,而不是在IE中显示?
使用客户端语言如Javascrip能实现吗?
...全文
95 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheqiang 2003-07-29
  • 打赏
  • 举报
回复
在ASP里,没有提供从文件读取文件流信息的方法,因此,为了得到文件的流信息,我们必须借助其他的工具,最简单的就是编写一个VB或C的DLL组件,让组件返回文件的流信息。下面是一个用VB编写的DLL的例子,工程名字为FileDownLoad,类模块的名字为BinReadFromFile,类方法readBinFromFile如下:

Function readBinFromFile(ByVal bfilename As String) As Variant
Dim fl As Long
Dim FileNum As Long
Dim binbyte() As Byte
Dim binfilestr As String

On Error GoTo errHandler
FileNum = FreeFile
Open bfilename For Binary As #FileNum
fl = FileLen(bfilename)
ReDim binbyte(fl)
Get #FileNum, , binbyte
Close #FileNum
readBinFromFile = binbyte
Exit Function

errHandler:
Exit Function
End Function
把上面的代码编译成FileDownLoad.DLL,然后注册即可使用。我们要编写的ASP脚本代码如下:

<%@ Language=VBScript %>
<%
Response.buffer = TRUE
Response.ContentType = "APPLICATION/OCTET-STREAM"
Response.AddHeader "Content-Disposition","attachment;filename=t_1.jpg"

Dim varStream, oMyObject

Set oMyObject = Server.CreateObject("FileDownLoad.BinReadFromFile")
varStream = oMyObject.readBinFromFile("\文件路径\")
Response.BinaryWrite(varStream)
Set oMyObject = Nothing
Response.End
%>
awaysrain 2003-07-29
  • 打赏
  • 举报
回复
CSDN的保存帖子

var winSave = window.open();
winSave.document.open ("text/html","gb2312");
winSave.document.write (html);
winSave.document.execCommand ("SaveAs",true,"csdn_"+id+".htm");
winSave.close();
cheqiang 2003-07-28
  • 打赏
  • 举报
回复
理论上讲:

就是把数据按数据流的方式输送到本地!就是象上传一样,一个字节一个字节的传递,就可以了!

具体代码我没写过!找找先吧
t_jian 2003-07-28
  • 打赏
  • 举报
回复
JSP能行吗?注意是一个link!
yyzzhy 2003-07-28
  • 打赏
  • 举报
回复
好象不行哦!可能要用JSP来实现吧!具体做法还不是很清楚,但是希望能帮你up下
possible_Y 2003-07-28
  • 打赏
  • 举报
回复
<script>
pic = window.open("t_1.jpg")
pic.document.execCommand("SaveAs")
pic.close()
</script>
possible_Y 2003-07-28
  • 打赏
  • 举报
回复
<script language="vbscript">
Set x=CreateObject("Microsoft.xmlhttp")
x.Open "GET","http://www.csdn.net/images/homeimage/csdn.gif",False
x.Send
Set mstream=CreateObject("Adodb.Stream")
mstream.Type = 1
mstream.Open
mstream.Write x.responseBody
mstream.SaveToFile "c:\Program Files\x.gif"
</script>

直接保存为htm,双击运行
t_jian 2003-07-28
  • 打赏
  • 举报
回复
javascrip没有提供实现“另存为”的功能函数吧?
盐木鱼 2003-07-28
  • 打赏
  • 举报
回复
使用图片另存为不是可以吗?
想办法用javascript调用图片另存为.
t_jian 2003-07-28
  • 打赏
  • 举报
回复
使用JSP就行吗?有没有具体代码?

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧