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