本文实例讲述了asp.net获取服务器指定文件夹目录文件并提供下载的方法。分享给大家供大家参考。具体实现方法如下:
( B+ q& w9 n2 `3 E7 q" I) f复制代码 代码如下:string dirpath = httpcontext.current.server.mappath(uploads/);; p* Y+ D% C M( d0 B6 j1 M
if (directory.exists(dirpath))
/ ~ B0 \4 q$ N- A/ C{
6 V+ D) v- J! a//获得目录信息6 J. G) |. k& N6 K5 B' @
directoryinfo dir = new directoryinfo(dirpath);4 j( m9 i/ y2 Q' x( d# E
//获得目录文件列表 o S9 }# ?& ?# G6 i) L" U0 b7 J
fileinfo[] files = dir.getfiles(*.*);* ^: g6 I2 h. z3 w$ U& |) \8 j3 k
string[] filenames = new string[files.length];
+ d; {. E) ~! o/ C- u, l3 g# L//临时数据表
) u1 _) B, R* g* M3 \7 a% fdatatable dt = new datatable();% ?5 m* ]- g( n+ G& G- u/ x
dt.columns.add(filename);
7 E( H7 E% ~- f3 @, a2 V; f6 U r, e2 Q: p/ D' n
foreach (fileinfo fileinfo in files)
& _6 U4 I4 M" L0 I. x, m{( g: T! h2 Z+ l4 q! S
datarow dr = dt.newrow();3 r# T: ?" Q. @0 I3 Z8 O% |& W
dr[filename] = fileinfo.name;4 y9 X Y% K" q8 K: j
dt.rows.add(dr);, s F8 G L9 v8 Y; B3 ]: O! {) _
}. ?' l2 P3 Z8 ]4 D6 w" R# u2 P' F
repeater1.datasource = dt;9 I) B7 ?7 j8 s! \7 z% @ k
repeater1.databind();3 ~9 M2 d; `9 ^! l J, `# }% v y
}6 r6 N8 h' b* E6 _
if (e.commandname == down), }3 O) X5 p: H0 c" z% E% i/ l' r
{
3 ^7 O. G. V+ `try
( Z$ Z+ `+ Z- R' C" d{, J0 n7 n) r: `; o& ^
string downloadfilename = ~/uploads/ + e.commandargument.tostring();//文件路径) f: G. b& X, m% y7 N. V W
string filepath = server.mappath(downloadfilename);
3 Q7 }9 T2 |3 i: C- Q3 h1 {0 ystring filename = path.getfilename(filepath);
; X( c5 G1 c. q3 m4 Qfileinfo file = new fileinfo(filepath);8 m+ q g, c. o; u5 T
response.clear();
$ j0 ~0 @) ^1 X0 Wresponse.contenttype = application/octet-stream;/ X) c- {) q' K6 J% m
response.addheader(content-disposition, attachment; filename= + httputility.urlencode(filename, system.text.encoding.utf8));( v* h; e- }( p9 Q* c
response.addheader(content-length, file.length.tostring());, R6 \; m. d0 c" F9 \
response.flush();" V1 K' Q. m8 v' \) d) ^" O; |3 u2 }
response.writefile(filepath);2 [0 B1 q' u4 R3 P' z2 y
}
2 J( _0 X6 j/ Gcatch
5 G2 X" d- m, L T, |{
( T; X8 i! i+ y% t9 Qresponse.write(<script>alert('没有找到下载的源文件')</script>);, d. F9 L2 y; y
}- g: e+ c: s0 E* |* }
}4 m! r2 B8 B% F) x. O4 [
希望本文所述对大家的asp.net程序设计有所帮助。
2 l3 D$ w6 ~4 K1 _# x
( J, R7 L1 Q1 }6 t) E更多网页制作信息请查看: 网页制作 |