ASP版本 保存远程照片到服务器上面并修改路径
图片上传及保存

图片及文件上传和下载本文简单介绍 2.0中将图片或文件上传到服务器或保存到数据库的方法,以及保存后如何显示和下载。
1.图片及文件保存到服务器1.1 上传本示例构造一个能将文件上传到服务器指定目录的页面。
(1)新建一个网站,增加web.config配置文件。
(2)在解决方案资源管理器中,在网站名称上单击鼠标右键,增加一个文件夹,取名为Images,作为上传文件的路径。
(3)进入default.aspx的设计模式,从工具箱的标准选项卡中,拖一个FileUpload控件到页面上,默认ID为“FileUpload1”。
该控件负责选中一个文件。
(4)拖一个Button到页面上,Text属性设置为“上传”,ID设置为btnUpload。
点击该按钮后,上传文件。
(5)为上传按钮增加Click事件。
(6)在Click事件中,增加以下代码:protected void btnUpload_Click(object sender, EventArgs e){// 是否选中了文件,如果没有选中,提示并返回if(FileUpload1.FileName == ""){Response.Write("<script language='javascript'>alert('请先选中一个文件再点击上传按钮!');</script>");return;}/* 为防止上传的文件重名,将上传时间追加到文件名之后* 获取新文件名开始*/// 取得上传文件名,注意这样得到的是完整路径+文件名string strFileName = FileUpload1.FileName;// 得到最后一个“\”的位置int nIndex = stIndexOf('\\');// 得到真正的文件名strFileName = strFileName.Substring(nIndex + 1);// 得到文件后缀前的“.”所在位置nIndex = stIndexOf('.');// 将“文件名.后缀”改为“文件名+时间.后缀”(那个加号表示连接)strFileName = strFileName.Substring(0, nIndex)+ DateTime.Now.ToString("yyyyMMddHHmmss")+ strFileName.Substring(nIndex);/* 获取新文件名结束*/// 将上传文件的虚拟目录映射为服务器绝对路径string strPath = Server.MapPath("./Images/"+ strFileName);// 上传文件FileUpload1.PostedFile.SaveAs(strPath);}(7)运行,选中一个文件并上传,看一下是否上传到了Images目录。
用纯ASP代码实现图片上传到指定文件夹并存入数据库中的代码

用纯ASP代码实现图片上传到指定文件夹并存入数据库中的代码用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在自己的社区里面实现类似网易虚拟社区提供的“每日一星”的功能,就要提供给网友上传照片的功能。
上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件;至于第二种情况,我们也要付出不少的“银子”才可以。
除非你拥有自己的虚拟主机,你就可以随便的在服务器上面安装自己所需要的组件,这种情况对于大多数人来说是可望而不可及的。
那我们就没有办法了吗?呵呵,答案是肯定的(当然是肯定的了,要不然我也没法写出这篇文章啊)。
下面就让我们一起来使用纯ASP代码来实现图片的上传以及保存到数据库的功能(顺便也实现显示数据库中的图片到网页上的功能)。
首先我们先来熟悉一下将要使用的对象方法。
我们用来获取上一个页面传递过来的数据一般是使用Request对象。
同样的,我们也可以使用Request对象来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。
而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是:Request.BinaryWrite()。
在我们得到了图片的数据,要保存到数据库中的时候,不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk 方法。
各个方法的具体语法如下:* Request.BinaryRead语法:variant = Request.BinaryRead(count)参数variant返回值保存着从客户端读取到数据。
count指明要从客户端读取的数据量大小,这个值小于或者等于使用方法Request.TotalBytes得到的数据量。
asp编程实现文件备份,并保存文件名和路径到数据库

'循环输出文件夹path下的文件的文件名
For each objFile in objFiles '取相关值
Response.Write "Name: " & & " "
Response.Write "ShortName: " & objFile.ShortName & " "
Response.Write "Created: " & objFile.DateCreated & " "
Response.Write "LastModified: " & objFile.DateLastModified & "<P>"
Next
Set objFolder=nothing
For Each objFile in objFolder.Files
Dim OldFileAndDir=objFile.GetParentFolder()&"\\"&objFile.GetFileName
'备份文件到目录
objFSO.CopyFile objFile.Path ,OldFileNameDir.Replace("c:\\","c:\\other\\");
1.
function bianli(path)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
ASP替换、保存远程图片实现代码概要1资料

End if
Next
If TempStr<>"" Then
TempArray=Split(TempStr,"$Array$")
TempStr=""
For Tempi=0 To Ubound(TempArray)
Re.Pattern ="src\s*=\s*.+?\.(gif|jpg|bmp|jpeg|psd|png|svg|dxf|wmf|tiff)"
ReplaceSaveRemoteFile=ConStr
Exit function
End if
TempStr=Replace(TempStr,"""","")
TempStr=Replace(TempStr,"'","")
TempStr=Replace(TempStr," ","")
Dim RemoteFileurl,SavePath,PathTemp,DtNow,strFileName,strFileType,ArrSaveFileName,RanNum,Arr_Path
ASP
ASP通过函数来实现替换、保存远程图片,完成自动采集图片、提取图片的功能,函数中自动判断重复图片,智能分析链接路径,并转成成相对的图片地址保存在你指定的网站目录中,我们可将此函数用在后台的编辑器中,当你复制了含有图片的内容后,本代码会自动帮你上传图片。同时本代码也是采集程序中的重要处理函数,函数代码如下:
Re.Global= True
For Tempi=0To Ubound(TempArray2)
asp.net中图片的上传和删除(全文5篇)

中图片的上传和删除(全文5篇)第一篇:中图片的上传和删除中图片的上传和删除上传图片: bool fileIsValid = false;//获取上传文件的后缀String fileExtension = System.IO.Path.GetExtension(this.file.FileName).ToLower();String[] restrictExtension ={ “.gif”, “.jpg”, “.bmp” };//判断文件类型是否符合要求for(int i = 0;i < restrictExtension.Length;i++){if(fileExtension == restrictExtension[i]){fileIsValid = true;}}//如果文件类型符合要求,调用SaveAs方法实现上传,并显示相关信息if(fileIsValid == true){this.file.SaveAs(Server.MapPath(“~/文件夹名/”)+ file.FileName);}删除图片://///// 删除文件或图片//////当前文件的路径/// 是否删除成功public static bool FilePicDelete(string path){bool ret = false;System.IO.FileInfo file = new System.IO.FileInfo(path);if(file.Exists){file.Delete();ret = true;}return ret;}第二篇: 删除数据学习资料删除数据protected void Button2_Click(object sender, EventArgs e){SqlConnection conn = newSqlConnection(ConfigurationManager.ConnectionStrings[“newsConnectionString”].ConnectionString);SqlCommand cmd = new SqlCommand();mandText=“delete from login where 编号='”+this.TextBox1.Text+“'”;cmd.Connection=conn;conn.Open();cmd.ExecuteNonQuery();conn.Close();Response.Write(“”);Response.Redirect(“Default.aspx”);}第三篇: 图片上传学习课件后台代码protected void Page_Load(object sender, EventArgs e){this.Image1.Visible = false;}protected void Button1_Click(object sender, EventArgs e){string fullfilename = this.File1.PostedFile.FileName;string filename = fullfilename.Substring(stIndexOf(“”)+ 1);string type = fullfilename.Substring(stIndexOf(“.”)+ 1);if(type == “jpg” || type == “bmp” || type == “gif”){this.File1.PostedFile.SaveAs(Server.MapPath(“WebSite11”) + “” + filename);this.Image1.ImageUrl = “WebSite11/” + filename;this.Image1.Visible = true;}else{Response.Write(“”);}}第四篇:幼教考察报告-定稿删除图片安居区幼儿教育考察报告考察概况2009年5月21、22日和6月8、9日,安居区教育局幼教考察团在局党组成员、副局长艾勇的带领下,先后奔赴巴中市南江县和成都市新津县,实地考察了两县的幼儿教育,通过考察,我们深切的感受到,这两处地市虽然办园机制各不相同,但具有鲜明的共性:办园体制灵活、规模宏大、政府重视、特色鲜明,善于调动各方面的办园积极性,努力促进城乡学前教育的均衡发展,具有较高的保育办园质量。
asp将本地的文件上传到服务器

asp将本地的⽂件上传到服务器今天我们讲解如何利⽤asp的上传功能将本地的⽂件上传到服务器上。
最简系统包括下⾯三个⽂件:upload.htm --上传⼝⽂件,选择本地⽂件uploadimg.asp --上传程序控制⽂件upload_5xsoft.inc --⽆组件上传类,此⽂件初学者不⽤学习,只要会⽤就可以了upload.htm内容————上传⼝⽂件,选择本地⽂件<html><head></head><body><table width="80%" border="0" align="center"><form name="form1" method="post" action="uploadimg.asp" enctype="multipart/form-data"><tr><td align="center"><input name="upfile" type="file" id="upfile"></td></tr><tr><td align="center"><input type="submit" name="Submit" value="上传图⽚"></td></tr></form></table></body></html>uploadimg.asp内容————上传程序控制⽂件<!--#include FILE="upload_5xsoft.inc"--><%dim upload,file,filepathfilepath="UPLOAD/"set upload=new upload_5xSoft ''建⽴上传对象for each formName in upload.file ''列出所有上传了的⽂件set file=upload.file(formName) ''⽣成⼀个⽂件对象if file.FileSize>0 then ''如果 FileSize > 0 说明有⽂件数据fname = file.filenamefile.SaveAs Server.mappath(filepath&fname) ''保存⽂件end ifset file=nothingnextset upload=nothing ''删除此对象upload_5xsoft.inc内容————此⽂件内容不属于本演练程序内容,本演练应⽤此类的⽅法<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>dim oUpFileStreamClass upload_5xSoftdim Form,File,VersionPrivate Sub Class_Initializedim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfodim iFileSize,sFilePath,sFileType,sFormvalue,sFileNamedim iFindStart,iFindEnddim iFormStart,iFormEnd,sFormNameVersion="⽆组件上传类 Version 0.93"set Form=Server.CreateObject("Scripting.Dictionary")set File=Server.CreateObject("Scripting.Dictionary")if Request.TotalBytes<1 then Exit Subset tStream = Server.CreateObject("adodb.stream")set oUpFileStream = Server.CreateObject("adodb.stream")oUpFileStream.Type = 1oUpFileStream.Mode =3oUpFileStream.OpenoUpFileStream.Write Request.BinaryRead(Request.TotalBytes)Response.Write "<font size=""2"">页⾯执⾏时间:"&FormatNumber((Timer() -time1)*1000,3)&"毫秒</font><br>" oUpFileStream.Position=0RequestBinDate =oUpFileStream.ReadiFormStart = 1iFormEnd = LenB(RequestBinDate)bCrLf = chrB(13) & chrB(10)sStart = MidB(RequestBinDate,1, InStrB(iFormStart,RequestBinDate,bCrLf)-1) iStart = LenB (sStart)iFormStart=iFormStart+iStart+1while (iFormStart + 10) < iFormEndiInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf & bCrLf)+3tStream.Type = 1tStream.Mode =3tStream.OpenoUpFileStream.Position = iFormStartoUpFileStream.CopyTo tStream,iInfoEnd-iFormStarttStream.Position = 0tStream.Type = 2tStream.Charset ="gb2312"sInfo = tStream.ReadText'取得表单项⽬名称iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)iFindStart = InStr(22,sInfo,"name=""",1)+6iFindEnd = InStr(iFindStart,sInfo,"""",1)sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)'如果是⽂件if InStr (45,sInfo,"filename=""",1) > 0 thenset oFileInfo=new FileInfo'取得⽂件名iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10iFindEnd = InStr(iFindStart,sInfo,"""",1)sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)oFileInfo.FileName=getFileName(sFileName)oFileInfo.FilePath=getFilePath(sFileName)'取得⽂件类型iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14iFindEnd = InStr(iFindStart,sInfo,vbCr)oFileInfo.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)oFileInfo.FileStart =iInfoEndoFileInfo.FileSize = iFormStart -iInfoEnd -3oFileInfo.FormName=sFormNamefile.add sFormName,oFileInfoelse'如果是表单项⽬tStream.ClosetStream.Type =1tStream.Mode =3tStream.OpenoUpFileStream.Position = iInfoEndoUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-3tStream.Position = 0tStream.Type = 2tStream.Charset ="gb2312"sFormvalue = tStream.ReadTextform.Add sFormName,sFormvalueend iftStream.CloseiFormStart=iFormStart+iStart+1wendRequestBinDate=""set tStream =nothingEnd SubPrivate Sub Class_Terminateif not Request.TotalBytes<1 thenform.RemoveAllfile.RemoveAllset form=nothingset file=nothingoUpFileStream.Closeset oUpFileStream =nothingend ifEnd SubPrivate function GetFilePath(FullPath)If FullPath <> "" ThenGetFilePath = left(FullPath,InStrRev(FullPath, ""))ElseGetFilePath = ""End IfEnd functionPrivate function GetFileName(FullPath)If FullPath <> "" ThenGetFileName = mid(FullPath,InStrRev(FullPath, "")+1)ElseGetFileName = ""End IfEnd functionEnd ClassClass FileInfodim FormName,FileName,FilePath,FileSize,FileType,FileStartPrivate Sub Class_InitializeFileName = ""FilePath = ""FileSize = 0FileStart= 0FormName = ""FileType = ""End SubPublic function SaveAs(FullPath)dim oFileStream,ErrorChar,iSaveAs=1if trim(fullpath)="" or right(fullpath,1)="/" then exit functionset oFileStream=CreateObject("Adodb.Stream")oFileStream.Type=1oFileStream.Mode=3oFileStream.OpenoUpFileStream.position=FileStartoUpFileStream.copyto oFileStream,FileSizeoFileStream.SaveToFile FullPath,2oFileStream.Closeset oFileStream=nothingSaveAs=0end functionEnd Class</SCRIPT>此⽂所诉的内容是上传⽂件的最简化程式,请朋友们⾃⼰分析⼀下,学会本演练,asp⼀般的上传功能就基本掌握了。
ASP远程图片本地化

ASP远程图片本地化.txt3努力奋斗,天空依旧美丽,梦想仍然纯真,放飞自我,勇敢地飞翔于梦想的天空,相信自己一定做得更好。
4苦忆旧伤泪自落,欣望梦愿笑开颜。
5懦弱的人害怕孤独,理智的人懂得享受孤独 '================================================== '函数名:CheckDir2'作用:检查文件夹是否存在'参数:FolderPath ------文件夹地址'==================================================Function CheckDir2(byval FolderPath)dim fsofolderpath=Server.MapPath(".")&"\"&folderpathSet fso = Server.CreateObject("Scripting.FileSystemObject")If fso.FolderExists(FolderPath) then'存在CheckDir2 = TrueElse'不存在CheckDir2 = FalseEnd ifSet fso = nothingEnd Function'=================================================='函数名:MakeNewsDir2'作用:创建新的文件夹'参数:foldername ------文件夹名称'==================================================Function MakeNewsDir2(byval foldername)dim fsoSet fso = Server.CreateObject("Scripting.FileSystemObject")fso.CreateFolder(Server.MapPath(".") &"\" &foldername)If fso.FolderExists(Server.MapPath(".") &"\" &foldername) ThenMakeNewsDir2 = TrueElseMakeNewsDir2 = FalseEnd IfSet fso = nothingEnd Function'=================================================='函数名:DefiniteUrl'作用:将相对地址转换为绝对地址'参数:PrimitiveUrl ------要转换的相对地址'参数:ConsultUrl ------当前网页地址'==================================================Function DefiniteUrl(Byval PrimitiveUrl,Byval ConsultUrl)Dim ConTemp,PriTemp,Pi,Ci,PriArray,ConArrayIf PrimitiveUrl="" or ConsultUrl="" or PrimitiveUrl="$False$" ThenDefiniteUrl="$False$"Exit FunctionEnd IfIf Left(ConsultUrl,7)<>"HTTP://" And Left(ConsultUrl,7)<>"http://" Then ConsultUrl= "http://" & ConsultUrlEnd IfConsultUrl=Replace(ConsultUrl,"://",":\\")If Right(ConsultUrl,1)<>"/" ThenIf Instr(ConsultUrl,"/")>0 ThenIf Instr(Right(ConsultUrl,Len(ConsultUrl)-InstrRev(ConsultUrl,"/")),".")>0 then ElseConsultUrl=ConsultUrl & "/"End IfElseConsultUrl=ConsultUrl & "/"End IfEnd IfConArray=Split(ConsultUrl,"/")If Left(PrimitiveUrl,7) = "http://" thenDefiniteUrl=Replace(PrimitiveUrl,"://",":\\")ElseIf Left(PrimitiveUrl,1) = "/" ThenDefiniteUrl=ConArray(0) & PrimitiveUrlElseIf Left(PrimitiveUrl,2)="./" ThenDefiniteUrl=ConArray(0) & Right(PrimitiveUrl,Len(PrimitiveUrl)-1)ElseIf Left(PrimitiveUrl,3)="../" thenDo While Left(PrimitiveUrl,3)="../"PrimitiveUrl=Right(PrimitiveUrl,Len(PrimitiveUrl)-3)Pi=Pi+1LoopFor Ci=0 to (Ubound(ConArray)-1-Pi)If DefiniteUrl<>"" ThenDefiniteUrl=DefiniteUrl & "/" & ConArray(Ci)ElseDefiniteUrl=ConArray(Ci)End IfNextDefiniteUrl=DefiniteUrl & "/" & PrimitiveUrlElseIf Instr(PrimitiveUrl,"/")>0 ThenPriArray=Split(PrimitiveUrl,"/")If Instr(PriArray(0),".")>0 ThenIf Right(PrimitiveUrl,1)="/" ThenDefiniteUrl="http:\\" & PrimitiveUrlElseIf Instr(PriArray(Ubound(PriArray)-1),".")>0 ThenDefiniteUrl="http:\\" & PrimitiveUrlElseDefiniteUrl="http:\\" & PrimitiveUrl & "/"End IfEnd IfElseIf Right(ConsultUrl,1)="/" ThenDefiniteUrl=ConsultUrl & PrimitiveUrlElseDefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & PrimitiveUrlEnd IfEnd IfElseIf Instr(PrimitiveUrl,".")>0 ThenIf Right(ConsultUrl,1)="/" ThenIf right(PrimitiveUrl,3)=".cn" or right(PrimitiveUrl,3)="com" or right(PrimitiveUrl,3)="net" or right(PrimitiveUrl,3)="org" ThenDefiniteUrl="http:\\" & PrimitiveUrl & "/"ElseDefiniteUrl=ConsultUrl & PrimitiveUrlEnd IfElseIf right(PrimitiveUrl,3)=".cn" or right(PrimitiveUrl,3)="com" or right(PrimitiveUrl,3)="net" or right(PrimitiveUrl,3)="org" ThenDefiniteUrl="http:\\" & PrimitiveUrl & "/"ElseDefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrlEnd IfEnd IfElseIf Right(ConsultUrl,1)="/" ThenDefiniteUrl=ConsultUrl & PrimitiveUrl & "/"ElseDefiniteUrl=Left(ConsultUrl,InstrRev(ConsultUrl,"/")) & "/" & PrimitiveUrl & "/" End IfEnd IfEnd IfEnd IfIf Left(DefiniteUrl,1)="/" thenDefiniteUrl=Right(DefiniteUrl,Len(DefiniteUrl)-1)End ifIf DefiniteUrl<>"" ThenDefiniteUrl=Replace(DefiniteUrl,"//","/")DefiniteUrl=Replace(DefiniteUrl,":\\","://")ElseDefiniteUrl="$False$"End IfEnd Function'=================================================='函数名:ReplaceSaveRemoteFile'作用:替换、保存远程文件'参数:ConStr ------ 要替换的字符串'参数:StarStr ----- 前导'参数:OverStr -----'参数:IncluL ------'参数:IncluR ------'参数:SaveTf ------ 是否保存文件,False不保存,True保存'参数:SaveFilePath- 保存文件夹'参数: TistUrl------ 当前网页地址'==================================================FunctionReplaceSaveRemoteFile(ConStr,StartStr,OverStr,IncluL,IncluR,SaveTf,SaveFilePath, TistUrl)If ConStr="$False$" or ConStr="" ThenReplaceSaveRemoteFile="$False$"Exit FunctionEnd IfDim TempStr,TempStr2,ReF,Matches,Match,Tempi,TempArray,TempArray2,OverTypeArray Set ReF = New RegexpReF.IgnoreCase = TrueReF.Global = TrueReF.Pattern = "("&StartStr&").+?("&OverStr&")"Set Matches =ReF.Execute(ConStr)For Each Match in MatchesIf Instr(TempStr,Match.Value)=0 ThenIf TempStr<>"" thenTempStr=TempStr & "$Array$" & Match.ValueElseTempStr=Match.ValueEnd ifEnd IfNextSet Matches=nothingSet ReF=nothingIf TempStr="" or IsNull(TempStr)=True ThenReplaceSaveRemoteFile=ConStrExit functionEnd ifIf IncluL=False thenTempStr=Replace(TempStr,StartStr,"")End ifIf IncluR=False thenIf Instr(OverStr,"|")>0 ThenOverTypeArray=Split(OverStr,"|")For Tempi=0 To Ubound(OverTypeArray)TempStr=Replace(TempStr,OverTypeArray(Tempi),"")NextElseTempStr=Replace(TempStr,OverStr,"")End IfEnd ifTempStr=Replace(TempStr,"""","")TempStr=Replace(TempStr,"'","")Dim RemoteFile,RemoteFileurl,SaveFileName,SaveFileType,ArrSaveFileName,RanNum If Right(SaveFilePath,1)="/" thenSaveFilePath=Left(SaveFilePath,Len(SaveFilePath)-1)End IfIf SaveTf=True thenIf CheckDir2(SaveFilePath)=False ThenIf MakeNewsDir2(SaveFilePath)=False ThenSaveTf=FalseEnd IfEnd IfEnd IfSaveFilePath=SaveFilePath & "/"'图片转换/保存TempArray=Split(TempStr,"$Array$")For Tempi=0 To Ubound(TempArray)RemoteFileurl=DefiniteUrl(TempArray(Tempi),TistUrl)If RemoteFileurl<>"$False$" And SaveTf=True Then'保存图片ArrSaveFileName = Split(RemoteFileurl,".")SaveFileType=ArrSaveFileName(Ubound(ArrSaveFileName))'文件类型RanNum=Int(900*Rnd)+100SaveFileName = SaveFilePath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ran Num&"."&SaveFileTypeCall SaveRemoteFile(SaveFileName,RemoteFileurl)ConStr=Replace(ConStr,TempArray(Tempi),SaveFileName)ElseIf RemoteFileurl<>"$False$" and SaveTf=False Then'不保存图片SaveFileName=RemoteFileUrlConStr=Replace(ConStr,TempArray(Tempi),SaveFileName) End IfIf RemoteFileUrl<>"$False$" ThenIf UploadFiles="" thenUploadFiles=SaveFileNameElseUploadFiles=UploadFiles & "|" & SaveFileNameEnd ifEnd IfNextReplaceSaveRemoteFile=ConStrEnd function'=================================================='过程名:SaveRemoteFile'作用:保存远程的文件到本地'参数:LocalFileName ------ 本地文件名'参数:RemoteFileUrl ------ 远程文件URL'==================================================sub SaveRemoteFile(LocalFileName,RemoteFileUrl)dim Ads,Retrieval,GetRemoteDataSet Retrieval = Server.CreateObject("Microsoft.XMLHTTP") With Retrieval.Open "Get", RemoteFileUrl, False, "", "".SendGetRemoteData = .ResponseBodyEnd WithSet Retrieval = NothingSet Ads = Server.CreateObject("Adodb.Stream")With Ads.Type = 1.Open.Write GetRemoteData.SaveToFile server.MapPath(LocalFileName),2.Cancel().Close()End WithSet Ads=nothingend sub'=================================================='过程名:GetImg'作用:取得文章中第一张图片'参数:str ------ 文章内容'参数:strpath ------ 保存图片的路径'==================================================Function GetImg(str,strpath)set objregEx = new RegExpobjregEx.IgnoreCase = trueobjregEx.Global = truezzstr=""&strpath&"(.+?)\.(jpg|gif|png|bmp)"objregEx.Pattern = zzstrset matches = objregEx.execute(str)for each match in matchesretstr = retstr &"|"& Match.Valuenextif retstr<>"" thenImglist=split(retstr,"|")Imgone=replace(Imglist(1),strpath,"")GetImg=ImgoneelseGetImg=""end ifend function'=================================================='=================================================='=================================================='=================================================='=================================================='=================================================='=================================================='=================================================='=================================================='=================================================='调用'图片开始的字符串FilesStartStr="src="'图片结束的字符串FilesOverStr="gif|jpg|bmp|png"'保存图片的文件夹FilesPath="/userfiles"'取得保存图片的网站URL 自动判断是绝对还是相对路径该例子中图片是绝对地址所以NEWURL等于没用如果是../images/123.gif这样的就需要指定NEWURL了NewsUrl=websiteurl'开始保存图片Content=ReplaceSaveRemoteFile(Content,FilesStartStr,FilesOverStr,False,True,True ,FilesPath,NewsUrl)。
ASP图片上传

ASP图片上传一个图片上传ASP,没有大小缩略图,也没有水印..缩略图的代码可以加,水印需要组件..<%ExtName = "jpg,gif,bmp" '允许扩展名SavePath = "upload" '保存路径If Right(SavePath,1)<>"/" Then SavePath=SavePath&"/" '在目录后加(/)CheckAndCreateFolder(SavePath)UpLoadAll_a = Request.TotalBytes '取得客户端全部内容If (UpLoadAll_a>0) ThenSet UploadStream_c = Server.CreateObject("ADODB.Stream") UploadStream_c.Type = 1UploadStream_c.OpenUploadStream_c.Write Request.BinaryRead(UpLoadAll_a)UploadStream_c.Position = 0FormDataAll_d = UploadStream_c.ReadCrLf_e = chrB(13)&chrB(10)FormStart_f = InStrB(FormDataAll_d,CrLf_e)FormEnd_g = InStrB(FormStart_f+1,FormDataAll_d,CrLf_e)Set FormStream_h = Server.Createobject("ADODB.Stream") FormStream_h.Type = 1FormStream_h.OpenUploadStream_c.Position = FormStart_f + 1UploadStream_c.CopyT o FormStream_h,FormEnd_g-FormStart_f-3FormStream_h.Position = 0FormStream_h.Type = 2FormStream_h.CharSet = "GB2312"FormStreamText_i = FormStream_h.ReadtextFormStream_h.CloseFileName_j = Mid(FormStreamT ext_i,InstrRev(FormStreamText_i,"\")+1,FormEn d_g)If (CheckFileExt(FileName_j,ExtName)) ThenSaveFile = Server.MapPath(SavePath & UserFaceName(right(FileName_j,3)))If Err ThenResponse.Write "文件上传: <span style=""color:red;"">文件上传出错!</span> <a href=""" &Request.ServerVariables("URL") &""">重新上传文件</a><br />"Err.ClearElseSaveFile = CheckFileExists(SaveFile)k=Instrb(FormDataAll_d,CrLf_e&CrLf_e)+4l=Instrb(k+1,FormDataAll_d,leftB(FormDataAll_d,FormStart_ f-1))-k-2FormStream_h.Type=1FormStream_h.OpenUploadStream_c.Position=k-1UploadStream_c.CopyT o FormStream_h,lFormStream_h.SaveToFile SaveFile,2SaveFileName = Mid(SaveFile,InstrRev(SaveFile,"\")+1)Saver="upload/"&SaveFileNameresponse.write "图片上传成功!请点<a href='"&saver&"' target=_blank>此处</a>预览."'response.write"<script>window.opener.document.all.fujan.value='"&Saver&"' </script>"'response.write "<script>retunpath='"&Saver&"';</script>"'response.write "<script src='/retun.js'></script>"'response.write " <script language='javascript'>window.alert('图片上传成回:"&retun_path&"');window.close();</script>"End IfElse'response.write "sgs"Response.write "文件上传:<span style='color:red;'>文件格式不正确!仅支持"&ExtName&"文件类型,</span><a href=" &Request.ServerVariables("URL") &"> 请重新上传文件</a><br />"End IfElse%><script language="Javascript"><!--function ValidInput(){if(document.upform.upfile.value==""){alert("请选择上传文件!")document.upform.upfile.focus()return false}return true}//--></script><style type="text/css"><!--body,td,th {font-size: 12px;}--></style><form action='<%= Request.ServerVariables("URL") %>' method='post' name="upform" onSubmit="return ValidInput()"enctype="multipart/form-data">文件上传:<input type='file' name='upfile' size="25"><input name="submit" type='submit' value="上传"></form><p><%End ifSet FormStream_h = Nothing'判断文件类型是否合格Function CheckFileExt(FileName,ExtName) '文件名,允许上传文件类型FileType = ExtNameFileType = Split(FileType,",")For i = 0 To Ubound(FileType)If LCase(Right(FileName,3)) = LCase(FileType(i)) thenCheckFileExt = TrueExit FunctionElseCheckFileExt = FalseEnd ifNextEnd Function'检查上传文件夹是否存在,不存在则创建文件夹Function CheckAndCreateFolder(FolderName)fldr = Server.Mappath(FolderName)Set fso = CreateObject("Scripting.FileSystemObject")If Not fso.FolderExists(fldr) Thenfso.CreateFolder(fldr)End IfSet fso = NothingEnd Function'生成文件新的文件名Function UserFaceName(FileExt)RandomizeRanNum = Int(90000*rnd)+10000UserFaceName = UserID&Year(now)&Month(now)&Day(now)&Hour(now)&Minut e(now)&Second(now)&RanNum&"."&FileExtEnd Function'检查文件是否存在,重命名存在文件Function CheckFileExists(FileName)Set fso=Server.CreateObject("Scripting.FileSystemObject") If fso.FileExists(SaveFile) Theni=1msg=TrueDo While msgCheckFileExists = Replace(SaveFile,Right(SaveFile,4),"_" & i & Right(SaveFile,4))If not fso.FileExists(CheckFileExists) Thenmsg=FalseEnd Ifi=i+1LoopElseCheckFileExists = FileName End IfSet fso=NothingEnd Function。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASP版本保存远程照片到服务器上面并修改路径<%'现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持。
但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的“X”,影响美观。
以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦。
能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的。
'要实现这个功能需要经过三个步骤:'一,取得原页中的图片的地址。
方法很多,可以用分割字符串,也可以用正则匹配。
实践证明用正则匹配最为简单。
经过分析图片的地址都保存在<IMG>标签中。
我们可以先取得所有这个标签。
过程如下:'on error resume nextstrs=trim(request.Form("content"))baseurl="ocean/vicky/" '保存到本地的目录AllowFileExt = "jpg|bmp|gif" '支持的文件名格式jpg|png|'baseurl = server.MapPath("ocean/vicky/") '保存到本地的目录if createdir(baseurl) = false thenresponse.Write"wrong!"response.Endend if%><textarea cols="100" rows="20"><%=strs%></textarea><%Set objRegExp = New Regexp'设置配置对象, “正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验objRegExp.IgnoreCase = True'忽略大小写objRegExp.Global = True'设置为全文搜索objRegExp.Pattern = "<IMG.+?>"'为了确保能准确地取出图片地址所以分为两层配置:首先找到里面的<IMG>标签,然后再取出里面的图片地址,后面的getimgs函数就是实现后一个功能的。
Set Matches =objRegExp.Execute(strs)'开始执行配置For Each Match in MatchesRetStr = RetStr&getimgs(Match.Value)'执行第二轮的匹配Next'建立目录的程序,如果有多级目录,则一级一级的创建Function CreateDIR(ByVal LocalPath)On Error Resume NextLocalPath = Replace(LocalPath, "\", "/")Set FileObject = server.CreateObject("Scripting.FileSystemObject")patharr = Split(LocalPath, "/")For I = 0 To UBound(patharr)If I = 0 Then pathtmp = patharr(0) & "/" Else pathtmp = pathtmp & patharr(I) & "/"cpath = server.MapPath(Left(pathtmp, Len(pathtmp) - 1))If Not FileObject.FolderExists(cpath) Then FileObject.CreateFolder cpath NextSet FileObject = NothingIf Err.Number <> 0 ThenCreateDIR = FalseErr.ClearElseCreateDIR = TrueEnd IfEnd Function'所有的图片在里面都是这样的src="http://图片的地址",所以可以这样来取得确切的图片地址:function getimgs(str)getimgs=""Set objRegExp1 = New RegexpobjRegExp1.IgnoreCase = TrueobjRegExp1.Global = TrueobjRegExp1.Pattern = "http://.+?""" '取出里面的地址set mm=objRegExp1.Execute(str)For Each Match1 in mmgetimgs=getimgs&"||"&left(Match1.Value,len(Match1.V alue)-1)'把里面的地址串起来备用||/www/hd2011/logo/news.pnggetimgs=replace(replace(getimgs,"""",""),"'","")nextend function'取得了所有的图片的地址,我们就可以进行第二步的操作了。
'二,下载图片并保存在服务器上。
这个又可以分为两个步骤:一个是取得图片的内容,另一个是保存在服务器上。
取得图片的内容是通过下面的函数来实现的:function getHTTPPage(url)on error resume nextdim httpset http=server.createobject("MSXML2.XMLHTTP")'使用xmlhttp的方法来获得图片的内容Http.open "GET",url,falseHttp.send()if Http.readystate<>4 thenexit functionend ifgetHTTPPage=Http.responseBodyset http=nothingif err.number<>0 then err.Clearend function'取得了图片的内容要保存,给人一种感觉是用FSO来作就可以了,但实际上不行,这样保存程序就会出错,因为FSO不支持流式的文件,所以我们要调用另一个对象:ADO.STREM。
具体的过程如下:function saveimage(from,tofile)dim geturl,objStream,imgsgeturl=trim(from)imgs=getHTTPPage(geturl)'取得图片的具休内容的过程Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本objStream.Type =1'以二进制模式打开objStream.Openobjstream.write imgs'将字符串内容写入缓冲objstream.SaveToFile server.mappath(tofile),2'-将缓冲的内容写入文件objstream.Close()'关闭对象set objstream=nothingend function'根据原文件名,自动以日期YYYY-MM-DD-RANDOM格式生成新文件名Function GenerateRandomFileName(ByVal szFilename)RandomizeranNum = Int(90000 * Rnd) + 10000If Month(Now) < 10 Then c_month = "0" & Month(Now) Else c_month = Month(Now)If Day(Now) < 10 Then c_day = "0" & Day(Now) Else c_day = Day(Now)If Hour(Now) < 10 Then c_hour = "0" & Hour(Now) Else c_hour = Hour(Now)If Minute(Now) < 10 Then c_minute = "0" & Minute(Now) Else c_minute = Minute(Now) If Second(Now) < 10 Then c_second = "0" & Second(Now) Else c_second = Minute(Now) fileExt_a = Split(szFilename, ".")FileExt = LCase(fileExt_a(UBound(fileExt_a)))GenerateRandomFileName = Year(Now) & c_month & c_day & c_hour & c_minute & c_second & "_" & ranNum & "." & FileExtEnd Function'获取文件名的后缀名,符合要求的就保存到本机电脑,具体过程如下:function GetfileExt(byval filename)fileExt_a=split(filename,".")GetfileExt=lcase(fileExt_a(ubound(fileExt_a)))end function'所以只要用一个循环来把刚才取得的地址中的图片全部保存下来,具体过程如下:arrimg=split(retstr,"||")'分割字串,取得里面原有的图片地址列表allimg=""newimg=""for i=1 to ubound(arrimg)if arrimg(i)<>"" and instr(allimg,arrimg(i))<1 then ' arrimg(i) 看这个图片是否已经下载过/news/pics/hv1/234/120/1050/68307084.jpgif instr(AllowFileExt,GetfileExt(arrimg(i)))>0 then '判断文件是否符合上传的限定fname=baseurl&GenerateRandomFileName(cstr(i&mid(arrimg(i),instrrev(arrimg(i),"."))))'ocean/20120601155656_12157.jpg 图片地址路径call saveimage(arrimg(i),fname) '保存地址的函数,过程见上面allimg=allimg&"||"&arrimg(i)'把保存下来的图片的地址串回起来,以确定要替换的地址newimg=newimg&"||"&fname'把本地的地址串回起来end ifend ifnext'第三步就是替换原来的地址了。