分享
 
 
 

不用WinRar将网络空间上的文件打包下载

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

此方法,不建议压缩,大文件,

一般的小文件压几个还很好用的

<%@ Language=VBScript %>

<% Option Explicit %>

<!--#include file="asptar.asp"-->

<%

Response.Buffer = True

Response.Clear

Dim Co,Temp,T,x,i,fsoBrowse,theFolder,TheSubFolders,FilePath,s,PH,objTar

Co=0

PH="./UpFile" '文件路径 '压缩Upfile下的所有文件

Set objTar = New Tarball

objTar.TarFilename="LvBBS_UpdateFile.rar" '打包的名称

objTar.Path=PH

set fsoBrowse=CreateObject("Scripting.FileSystemObject")

Set theFolder=fsoBrowse.GetFolder(Server.Mappath(PH))

Set theSubFolders=theFolder.SubFolders

For Each T in theFolder.Files

Temp= Temp & T.Name & "|"

Co=Co+1

Next

For Each x In theSubFolders

For Each i In X.Files

Temp= Temp & X.Name&"/"&i.Name&"|"

Co=Co+1

Next

Next

If Co<1 Then

Response.Write "暂时没有可更新的文件下载"

'objTar.AddMemoryFile "Sorry.txt","Not File!"

Else

Temp=Left(Temp,Len(Temp)-1)

FilePath=Split(Temp,"|")

For s=0 To Ubound(FilePath)

objTar.AddFile Server.Mappath(PH&"/"&FilePath(s))

Next

If Response.IsClientConnected Then

objTar.WriteTar

Response.Flush

End If

End If

Set ObjTar = Nothing

Set fsoBrowse= Nothing

Set theFolder = Nothing

Set theSubFolders = Nothing

%>

asptar.asp

<%

' UNIX Tarball creator

' ====================

' Author: Chris Read

' Version: 1.0.1

' ====================

' Homepage: http://users.bigpond.net.au/mrjolly/

'

' This class provides the ability to archive multiple files together into a single

' distributable file called a tarball (The TAR actually stands for Tape ARchive).

' These are common UNIX files which contain uncompressed data.

'

' So what is this useful for? Well, it allows you to effectively combine multiple

' files into a single file for downloading. The TAR files are readable and extractable

' by a wide variety of tools, including the very widely distributed WinZip.

'

' This script can include two types of data in each archive, file data read from a disk,

' and also things direct from memory, like from a string. The archives support files in

' a binary structure, so you can store executable files if you need to, or just store

' text.

'

' This class was developed to assist me with a few projects and has grown with every

' implementation. Currently I use this class to tarball XML data for archival purposes

' which allows me to grab 100's of dynamically created XML files in a single download.

'

' There are a small number of properties and methods, which are outlined in the

' accompanying documentation.

'

Class Tarball

Public TarFilename ' Resultant tarball filename

Public UserID ' UNIX user ID

Public UserName ' UNIX user name

Public GroupID ' UNIX group ID

Public GroupName ' UNIX group name

Public Permissions ' UNIX permissions

Public BlockSize ' Block byte size for the tarball (default=512)

Public IgnorePaths ' Ignore any supplied paths for the tarball output

Public BasePath ' Insert a base path with each file

Public Path

' Storage for file information

Private objFiles,TmpFileName

Private objMemoryFiles

' File list management subs, very basic stuff

Public Sub AddFile(sFilename)

objFiles.Add sFilename,sFilename

End Sub

Public Sub RemoveFile(sFilename)

objFiles.Remove sFilename

End Sub

Public Sub AddMemoryFile(sFilename,sContents)

objMemoryFiles.Add sFilename,sContents

End Sub

Public Sub RemoveMemoryFile(sFilename)

objMemoryFiles.Remove sFilename

End Sub

' Send the tarball to the browser

Public Sub WriteTar()

Dim objStream, objInStream, lTemp, aFiles

Set objStream = Server.CreateObject("ADODB.Stream") ' The main stream

Set objInStream = Server.CreateObject("ADODB.Stream") ' The input stream for data

objStream.Type = 2

objStream.Charset = "x-ansi" ' Good old extended ASCII

objStream.Open

objInStream.Type = 2

objInStream.Charset = "x-ansi"

' Go through all files stored on disk first

aFiles = objFiles.Items

For lTemp = 0 to UBound(aFiles)

objInStream.Open

objInStream.LoadFromFile aFiles(lTemp)

objInStream.Position = 0

'ExportFile aFiles(lTemp),objStream,objInStream

TmpFileName =replace(aFiles(lTemp),Server.Mappath(Path)&"\","")

ExportFile TmpFileName,objStream,objInStream

objInStream.Close

Next

' Now add stuff from memory

aFiles = objMemoryFiles.Keys

For lTemp = 0 to UBound(aFiles)

objInStream.Open

objInStream.WriteText objMemoryFiles.Item(aFiles(lTemp))

objInStream.Position = 0

ExportFile aFiles(lTemp),objStream,objInStream

objInStream.Close

Next

objStream.WriteText String(BlockSize,Chr(0))

' Rewind the stream

' Remember to change the type back to binary, otherwise the write will truncate

' past the first zero byte character.

objStream.Position = 0

objStream.Type = 1

' Set all the browser stuff

Response.AddHeader "Content-Disposition","filename=" & TarFilename

Response.ContentType = "application/x-tar"

Response.BinaryWrite objStream.Read

' Close it and go home

objStream.Close

Set objStream = Nothing

Set objInStream = Nothing

End Sub

' Build a header for each file and send the file contents

Private Sub ExportFile(sFilename,objOutStream,objInStream)

Dim lStart, lSum, lTemp

lStart = objOutStream.Position ' Record where we are up to

If IgnorePaths Then

' We ignore any paths prefixed to our filenames

lTemp = InStrRev(sFilename,"\")

if lTemp <> 0 then

sFilename = Right(sFilename,Len(sFilename) - lTemp)

end if

sFilename = BasePath & sFilename

End If

' Build the header, everything is ASCII in octal except for the data

objOutStream.WriteText Left(sFilename & String(100,C

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有