ASP根据URL来下载文件并保存到服务器本地

ltaixxx 2013-08-16 10:53:22
最近有个需求,需要用asp代码,根据提供的URL来下载文件并保存到服务器指定文件夹里,这个怎么实现呢,求高手路过过来提点下啊
...全文
472 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2013-08-23
  • 打赏
  • 举报
回复
<%
'==================================
'=功    能: 保存远程文件
'==================================
Sub saveimgfile(s_weburl)
	On Error Resume Next
	Dim savepath,s_name,s_ext,imgbody,xml_http,adodbs,files
	savepath="/FUploadFile/" '保存的文件夹
	files=Mid(s_weburl,InstrRev(s_weburl,"/")+1) '原文件名
	s_ext=LCase(Right(s_weburl,4))'获取远程文件的格式
	If InStr(".gif|.bmp|.jpeg|.jpg|.png|.html",s_ext)>0 Then
		'为了安全最好定义几种格式
		Set xml_http=Server.CreateObject("Microsoft.XMLHTTP")
		xml_http.open "get",s_weburl,False
		xml_http.send
		imgbody=xml_http.responsebody
		Set xml_http=Nothing
			Randomize
			files=savepath&files
			'files=savepath&Day(date)&"-"&rnd*1000&s_ext '建议重新命名文件
			Set adodbs = Server.CreateObject("Adodb.Stream")
			With adodbs
				.Open
				.Type = 1
				.Write imgbody
				.SaveToFile server.MapPath(files)
				.Cancel()
				.Close()
			End With
			Set adodbs=Nothing
	End If
	'实用时还需要做文件重名等处理。
End Sub
Call saveimgfile("http://www.scscms.com/scs_img/logo.png")
%>
auspi12341 2013-08-16
  • 打赏
  • 举报
回复
string ss= "D:\\sq\\sss.txt"; FileStream myFs = new FileStream(ss, FileMode.Create); myFs.Close(); 保存文件到D盘sq下
big_shot 2013-08-16
  • 打赏
  • 举报
回复
这个是下载函数,你修改修改就可以用了,不会要我全部写出来吧
Anlige 2013-08-16
  • 打赏
  • 举报
回复
引用 5 楼 big_shot 的回复:
Function TransferFile(path, mimeType, filename) ' 下面是不希望下载的文件 FileExt = Mid(filename, InStrRev(filename, ".") + 1) Select Case UCase(FileExt) Case "ASP", "ASA", "ASPX", "INC" Response.Write "受保护文件,不能下载." Response.End End Select Dim objFileSystem, objFile, objStream Dim char Dim sent send=0 TransferFile = True Set objFileSystem = Server.CreateObject( "Scripting.FileSystemObject") Set objFile = objFileSystem.GetFile(Path) Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue) Response.AddHeader "content-type ", mimeType response.AddHeader "Content-Disposition ", "attachment;filename= " & filename Response.AddHeader "content-length ", objFile.Size Do While Not objStream.AtEndOfStream char = objStream.Read(1) Response.BinaryWrite(char) sent = sent + 1 If (sent MOD FILE_TRANSFER_SIZE) = 0 Then Response.Flush If Not Response.IsClientConnected Then TransferFile = False Exit Do End If End If Loop Response.Flush If Not Response.IsClientConnected Then TransferFile = False objStream.Close Set objStream = Nothing Set objFileSystem = Nothing End Function
没读题就做题。。。
big_shot 2013-08-16
  • 打赏
  • 举报
回复
Function TransferFile(path, mimeType, filename) ' 下面是不希望下载的文件 FileExt = Mid(filename, InStrRev(filename, ".") + 1) Select Case UCase(FileExt) Case "ASP", "ASA", "ASPX", "INC" Response.Write "受保护文件,不能下载." Response.End End Select Dim objFileSystem, objFile, objStream Dim char Dim sent send=0 TransferFile = True Set objFileSystem = Server.CreateObject( "Scripting.FileSystemObject") Set objFile = objFileSystem.GetFile(Path) Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue) Response.AddHeader "content-type ", mimeType response.AddHeader "Content-Disposition ", "attachment;filename= " & filename Response.AddHeader "content-length ", objFile.Size Do While Not objStream.AtEndOfStream char = objStream.Read(1) Response.BinaryWrite(char) sent = sent + 1 If (sent MOD FILE_TRANSFER_SIZE) = 0 Then Response.Flush If Not Response.IsClientConnected Then TransferFile = False Exit Do End If End If Loop Response.Flush If Not Response.IsClientConnected Then TransferFile = False objStream.Close Set objStream = Nothing Set objFileSystem = Nothing End Function
Anlige 2013-08-16
  • 打赏
  • 举报
回复
引用 3 楼 auspi12341 的回复:
上午没注意楼主的问题 这个才对

        System.Net.WebClient myWebClient = new System.Net.WebClient();
        //保存文件
        myWebClient.DownloadFile("http://www.baidu.com/img/baidu_jgylogo3.gif", "D:\\save.gif");
人家asp啊。。。你们发.net代码做什么。。。 msxml.serverxmlhttp组件,获取到responseBody直接用adodb.stream以二进制的形式写入文件
auspi12341 2013-08-16
  • 打赏
  • 举报
回复
上午没注意楼主的问题 这个才对

        System.Net.WebClient myWebClient = new System.Net.WebClient();
        //保存文件
        myWebClient.DownloadFile("http://www.baidu.com/img/baidu_jgylogo3.gif", "D:\\save.gif");

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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