读书人

100分求代码:ASP打开一个远程文件htt

发布时间: 2012-03-12 12:45:33 作者: rapoo

100分求代码:ASP打开一个远程文件http://xxx.xxx.xxx.xxx/adfa/adsfasd/ad.* 不要在游览器中打开,而是弹出框让人下载/保存
ASP
打开一个远程文件http://xxx.xxx.xxx.xxx/adfa/adsfasd/ad.*
主要是.pdf .doc .exe .zip .rar等文件


所有类型的文件都不要在游览器中打开,而是弹出框让人下载/保存

不要让人可以很容易的拷贝到远程文件的地址,

[解决办法]
远程文件无法这么实现
除非是你自己的服务器

本地的话就好实现了
[解决办法]
好像不可能
[解决办法]
服务器先下载该文件。
[解决办法]
window.open
个没URL的窗体
[解决办法]
Const ForReading=1
Const TristateTrue=-1 'Unicode
Const FILE_TRANSFER_SIZE=16384 '16k

b = TransferFile( "C:\abc\abc.doc ", "application/octet-stream ", "newFileName.doc ")

Function TransferFile(path, mimeType, filename)
Dim objFileSystem, objFile, objStream
Dim char
Dim sent
sent=0
TransferFile = True
Set objFileSystem = Server.CreateObject( "Scripting.FileSystemObject ")
Set objFile = objFileSystem.GetFile(Path)
Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)
With Response
.Charset= "GB2312 "
.ContentType=mimeType
.AddHeader "Accept-Ranges ", "bytes "
.AddHeader "Content-Length ", objFile.Size
.AddHeader "Content-Type ", mimeType
.AddHeader "Content-Disposition ", "attachment; filename= " & filename
End With
With objStream
Do While Not .AtEndOfStream
char = .Read(FILE_TRANSFER_SIZE)
With Response
.BinaryWrite(char)
sent = sent + FILE_TRANSFER_SIZE
If (sent MOD FILE_TRANSFER_SIZE) = 0 Then
.Flush
If Not .IsClientConnected Then
TransferFile = False
Exit Do
End If
End If
End With
Loop
End With
Response.Flush
If Not Response.IsClientConnected Then TransferFile = False

objStream.Close
Set objStream = Nothing
Set objFile =Nothing
Set objFileSystem = Nothing
End Function
[解决办法]
学习中,好像不可以
[解决办法]
你的意思是说让人能下载 但不想让他找到地址是吗? 我有个想法 ,可不可以做个类似md5加密
解密的这样就不容易找到原地址了 瞎想的 呵呵
[解决办法]
楼上的玩笑了,好好补习补习,MD5能解密?
即使能解密,你如何对地址加密使它能让HTTP准确的指向文件?

目前这种的实现方法就是读取文件内容,然后直接Response出来,这样并不暴露原文件地址
同hookee()的方法一样,但是只能是本地文件
至于远程服务器要么有第3方组件支持,要么你只提供小文件下载(这样就可以将远程文件传输倒本地,再Response)
[解决办法]
up
[解决办法]
如果想不让人知道下载地址,可以这样子哈

做一个表单,隐藏一下idValue,做一个按扭,点击以后传递id到ASP页面,再由ASP页面redirect到url,这样就直接用IE的下载窗口,看不到URL了


之所以要做表单,是因为直接用链接的话,用一些下载软件,很容易就得到URL了,而IE自带的下载工具,看不到!
[解决办法]
下载页面形式代码
down.asp?id=
别人只会看到这个页面地址,实际的文件地址通过查询数据库获得

[解决办法]
不能用 redirect

会发302 会被抓包看到的.

hookee() ( ) 信誉:100 2007-7-12 18:08:08 得分: 0


正解.....
[解决办法]
添加 header 头就行了.

你GOOGLE 一下.
太多了.


[解决办法]
http://hi.baidu.com/mhrock/blog/item/fe0808dbf554a067d1164e0a.html

读书人网 >ASP

热点推荐