自动采集程序

代码如下:

<%  
  On Error Resume Next  
  Const uploadPath = "/uploads/" '文件存放路径  
  Const allowFileExt = "jpg,wma,swf,gif" '允许被采集的文件类型  
  'Const allowFileSize = "200"  
  Function getFile(url)  
    If url = "" Then  
      Exit Function  
    Else  
      url = Trim(url)  
    End If  
    '获取文件  
    fileExt = Lcase(Mid(url,Instrrev(url, ".")+1)) '文件类型  
    fileName = Lcase(Mid(url,Instrrev(url, "/")+1,Instrrev(url, ".")-Instrrev(url, "/")-1)) '无文件类型的文件名  
    newFilePath = getNow("Date") & "_" & Replace(FormatDateTime(Now(),3),":","") & "_" & cleanFileName(fileName) & "." & fileExt  
    if Instr(","&Lcase(allowFileExt)&",",","&fileExt&",") = 0 Then  
      getFile = "文件类型不允许"  
      Exit Function  
    End If  
    Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")  
    xmlhttp.open "get",url,false  
    xmlhttp.send  
    'While xmlhttp.readyState <> 4  
    ' xmlhttp.waitForResponse 1000  
    'Wend  
    If xmlhttp.status <> 200 Then  
      getFile="获取文件出错"  
      Exit Function  
    Else  
      Set folder=Server.CreateObject("Scripting.FileSystemObject")  
      Dim folderName  
      folderName = getNow("Year")&getNow("Month") '文件夹  
      If folder.FolderExists(Server.MapPath(uploadPath))=False Then  
        folder.CreateFolder Server.MapPath(uploadPath)  
      End If  
      If folder.FolderExists(Server.MapPath(uploadPath & folderName))=False Then  
        folder.CreateFolder Server.MapPath(uploadPath & folderName)  
      End If  
      Set folder=Nothing  
      file=xmlhttp.ResponseBody  
      If lenb(file) > allowFileSize Then  
        getFile = "文件太大,不能保存!"  
        Exit Function  
      Else  
        Set objAdostream=Server.Createobject("ADODB.Str"&"eam")  
        objAdostream.Open()  
        objAdostream.Type=1  
        objAdostream.Write(file)  
        objAdostream.SaveToFile(Server.Mappath(uploadPath & folderName &"/" & newFilePath))  
        objAdostream.SetEOS  
        Set objAdostream=Nothing  
        getFile= "<a href="""&uploadPath & folderName &"/" & newFilePath&""" target=""_balnk"">采集成功</a>"  
      End If  
    End If  
    Set xmlhttp=Nothing  
  End Function  
%>  
<script runat="server" language="jscript">  
function cleanFileName(str){  
 str = str.replace(/[^_\.a-zA-Z\d]/ig,"");  
 str = str.replace(/^[\/\.]+/,"");  
 return str;  
}  
function getNow(n)  
{  
  d = new Date();  
  switch (n)  
  {  
    case "Year":  
      return d.getYear();  
    case "Month":  
     return (d.getMonth() + 1);  
    case "Date":  
      return d.getDate();  
  }  
}  
</script>  
<%if request("do")="getfile" and request("file") <> "" then  
response.write(getFile(request("file")))  
else%>  
<form id="gform" method="post" action="?do=getfile" style="display: inline">  
 <input name="file" type="input" style="font-size:12px;" size="40" value="http://blog.xiaobin.net/uploads/200512/08_093616_01.gif">   
 <input type="Submit" name="Submit" value="采集 " class="button">  
</form>  
<%end if%>

相关推荐