1
using
System.Web.UI.HtmlControls;
2
using
System.Configuration;
3
using
System.ComponentModel;
4
using
System.Web.Security;
5
using
System.Security.Principal;
6
using
System.Drawing;
7
using
System.Drawing.Text;
8
using
System.Collections;
9
using
System.Collections.Specialized;
10![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
namespace
Rungoo.WebCtrlLib
12![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
13![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
14
/// 文件上传控件
15
/// Author: nowind
16
/// Date: 2006-3-4
17
/// Email: hgh113@sina.com
18
/// QQ: 87505959
19
/// </summary>
20
[DefaultProperty("Text"),
21
ToolboxData("<{0}:WebUploadFile runat=server></{0}:WebUploadFile>")]
22
public class WebUploadFile : System.Web.UI.WebControls.WebControl,INamingContainer
23![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
24
private event EventHandler uploaded;
25
26![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
属性#region 属性
27![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
机器属性#region 机器属性
29![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
30
/// 域
31
/// </summary>
32
[Bindable(true),
33
Category("Data"),Description("图片存放目标计算机的IP或者机器名,只在跨计算机上传时候填写"),
34
DefaultValue("")]
35
public string ComputerDomain
36![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
37![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["ComputerDomain"] == null ? String.Empty : (string)ViewState["ComputerDomain"] ; }
38![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["ComputerDomain"] = value; }
39
}
40![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
42
/// 登陆用户
43
/// </summary>
44
[Bindable(true),
45
Category("Data"),Description("图片存放目标计算机登陆用户,只在跨计算机上传时候填写"),
46
DefaultValue("")]
47
public string ComputerUsername
48![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
49![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["ComputerUsername"] == null ? String.Empty : (string)ViewState["ComputerUsername"] ; }
50![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["ComputerUsername"] = value; }
51
}
52![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
54
/// 登陆密码
55
/// </summary>
56
[Bindable(true),
57
Category("Data"),Description("图片存放目标计算机登陆密码,只在跨计算机上传时候填写"),
58
DefaultValue("")]
59
public string ComputerPassword
60![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
61![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["ComputerPassword"] == null ? String.Empty : (string)ViewState["ComputerPassword"] ; }
62![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["ComputerPassword"] = value; }
63
}
64![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
66
/// 文件存放路径
67
/// </summary>
68
[Bindable(true),
69
Category("Data"),Description(@"文件存放的物理路径。如果跨计算机上传,则必须填写,且包含完整共享目录路径,且保证该目录Windows权限可写,如 \\192.168.3.1\nowind\upload\;如果上传本地机器,则为图片存放物理目录全路径,如 D:\nowind\113\ ,也可以不填写,自动采用 ComputerUrlPath 指定的目录"),
70
DefaultValue("")]
71
public string ComputerFilePath
72![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
73![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["ComputerFilePath"] == null ? "" : (string)ViewState["ComputerFilePath"] ; }
74![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["ComputerFilePath"] = value; }
75
}
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
78
/// 文件服务路径
79
/// </summary>
80
[Bindable(true),
81
Category("Data"),Description(@"文件的Web访问路径。跨计算机上传时,必须填写Url完全路径,如 http://192.168.3.1/nowind/upload/ ;如果上传本地机器,则填写站点根目录后的全路径,如upload/file/"),
82
DefaultValue("")]
83
public string ComputerUrlPath
84![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
85![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["ComputerUrlPath"] == null ? String.Empty : (string)ViewState["ComputerUrlPath"] ; }
86
set
87![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
88
value = value.EndsWith(@"/") ? value : value+"/";
89
ViewState["ComputerUrlPath"] = value;
90
}
91
}
92
#endregion
93![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
95
/// 上传成功后是否显示文件信息
96
/// </summary>
97
[Bindable(true),
98
Category("Appearance"),Description("上传成功后是否显示文件信息"),
99
DefaultValue("")]
100
public System.Boolean IsShowFileInfo
101![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
102![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["IsShowFileInfo"] == null ? false : (bool)ViewState["IsShowFileInfo"] ; }
103![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["IsShowFileInfo"] = value; }
104
}
105![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
107
/// 文件大小上限
108
/// </summary>
109
[Bindable(true),
110
Category("Data"),Description("文件大小上限,以K为单位,默认为100K,0表示不限制"),
111
DefaultValue("")]
112
public System.Int64 FileMaxSize
113![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
114![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["FileMaxSize"] == null ? 100 : (System.Int64)ViewState["FileMaxSize"] ; }
115
set
116![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
117
if( value < 0 || value > System.Int64.MaxValue)
118
throw new ArgumentException("设置的值超过有效范围");
119
ViewState["FileMaxSize"] = value;
120
}
121
}
122![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
124
/// 是否覆盖服务器上已存在的同名文件
125
/// </summary>
126
[Bindable(true),
127
Category("Data"),Description("是否覆盖服务器上已存在的同名文件"),
128
DefaultValue("")]
129
public System.Boolean IsOverwrite
130![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
131![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["IsOverwrite"] == null ? true : (bool)ViewState["IsOverwrite"] ; }
132![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["IsOverwrite"] = value; }
133
}
134![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
136
/// 是否重新命名上传文件
137
/// </summary>
138
[Bindable(true),
139
Category("Data"),Description("是否重新命名上传文件"),
140
DefaultValue("")]
141
public System.Boolean IsRename
142![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
143![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["IsRename"] == null ? true : (bool)ViewState["IsRename"] ; }
144![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["IsRename"] = value; }
145
}
146![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
148
/// 文件类型
149
/// </summary>
150
[Bindable(true),
151
Category("Data"),Description("文件类型,多种文件类型以(,)分割,默认为rar,zip,doc,txt,wma,mp3,pdf类型"),
152
DefaultValue("")]
153
public System.String FileType
154![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
155![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["FileType"] == null ? "rar,zip,doc,txt,wma,mp3,pdf" : (string)ViewState["FileType"] ; }
156![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["FileType"] = value; }
157
}
158![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
160
/// 文件的完整Url路径
161
/// </summary>
162
[Bindable(true),
163
Category("Data"),Description("文件的完整Url路径,相对于根目录,如image/xxx.jpg"),Browsable(false),
164
DefaultValue("")]
165
public System.String FileFullUrl
166![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
167![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["FileFullUrl"] == null ? String.Empty : (string)ViewState["FileFullUrl"] ; }
168![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["FileFullUrl"] = value; }
169
}
170
171![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
其他属性#region 其他属性
172![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
173
//控件宽度属性
174
[Bindable(true),
175
Category("Layout"),
176
DefaultValue("")]
177
public override Unit Width
178![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
179![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.pnlFrame.Width;}
180![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.Width = value;}
181
}
182![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
//控件高度属性
184
[Bindable(true),
185
Category("Layout"),
186
DefaultValue("")]
187
public override Unit Height
188![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
189![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.pnlFrame.Height;}
190![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.Height = value;}
191
}
192![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
193
//前景色属性
194
[Bindable(true),
195
Category("Appearance"),
196
DefaultValue("")]
197
public override Color ForeColor
198![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
199![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return pnlFrame.ForeColor;}
200![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.ForeColor = value;}
201
}
202![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
203
//背景色属性
204
[Bindable(true),
205
Category("Appearance"),
206
DefaultValue("")]
207
public override Color BackColor
208![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
209![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return pnlFrame.BackColor;}
210![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.BackColor = value;}
211
}
212![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
213
//按钮样式
214
[Bindable(true),
215
Category("Appearance"),Description("按钮样式"),
216
DefaultValue("")]
217
public string CssButton
218![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
219![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["CssButton"] == null ? String.Empty : (string)ViewState["CssButton"] ; }
220![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["CssButton"] = value; }
221
}
222![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
223
//浏览框样式属性
224
[Bindable(true),
225
Category("Appearance"),Description("浏览框样式属性"),
226
DefaultValue("")]
227
public string CssInputFile
228![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
229![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["CssInputFile"] == null ? String.Empty : (string)ViewState["CssInputFile"] ; }
230![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["CssInputFile"] = value; }
231
}
232![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
233
//文字样式属性
234
[Bindable(true),
235
Category("Appearance"),Description("文字样式属性"),
236
DefaultValue("")]
237
public override string CssClass
238![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
239![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return ViewState["CssClass"] == null ? String.Empty : (string)ViewState["CssClass"] ; }
240![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ ViewState["CssClass"] = value; }
241
}
242![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
243
//控件边框颜色属性
244
[Bindable(true),
245
Category("Appearance"),
246
DefaultValue("")]
247
public override Color BorderColor
248![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
249![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.pnlFrame.BorderColor;}
250![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.BorderColor = value;}
251
}
252![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
253
//控件边框样式属性
254
[Bindable(true),
255
Category("Appearance"),
256
DefaultValue("")]
257
public override BorderStyle BorderStyle
258![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
259![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.pnlFrame.BorderStyle;}
260![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.BorderStyle = value;}
261
}
262![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
263
//控件边框宽度属性
264
[Bindable(true),
265
Category("Appearance"),
266
DefaultValue("")]
267
public override Unit BorderWidth
268![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
269![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.pnlFrame.BorderWidth;}
270![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
set
{ this.pnlFrame.BorderWidth = value;}
271
}
272![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
273
#endregion
274![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
275
//处理上传成功后用户自定义事件
276
[Bindable(true),
277
Category("Action"), Description("处理上传成功后用户自定义事件"),
278
DefaultValue("")]
279
public event EventHandler Uploaded
280![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
281![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
add
{ this.uploaded += value;}
282![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
remove
{ this.uploaded -= value;}
283
}
284
#endregion
285![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
286![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
声明子控件#region 声明子控件
287
private Label lblInfo = new Label(); //用于文件信息
288
private Label lblMsg = new Label(); //上传文件重命名称
289
private System.Web.UI.WebControls.FileUpload fileUpload = new FileUpload(); //浏览本地文件
290
private System.Web.UI.HtmlControls.HtmlButton btnUpload = new HtmlButton(); //上传按钮
291
private Panel pnlFrame = new Panel(); //承载其它控件的容器Panel控件
292
#endregion
293![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
294![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
构造函数初始化子控件#region 构造函数初始化子控件
295
public WebUploadFile()
296![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
297
this.fileUpload.ID = "fileUpload";
298![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
299
this.lblInfo.ID = "lblInfo";
300
this.lblInfo.Text = this.FileFullUrl;
301
this.lblInfo.Visible = false;
302![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
303
this.lblMsg.ID = "lblMsg";
304
this.lblMsg.Text = "";
305
this.lblMsg.ForeColor = Color.Red;
306
this.lblMsg.Visible = false;
307![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
308
this.btnUpload.ID = "btnUpload";
309
this.btnUpload.InnerText = "上传";
310
this.btnUpload.ServerClick += new EventHandler(this.Upload_Click);
311![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
312
this.pnlFrame.ForeColor = this.ForeColor;
313
this.pnlFrame.BackColor = Color.Empty;
314![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
315
//将子控件添加到此自定义控件中
316
this.Controls.Add(fileUpload);
317
this.Controls.Add(lblInfo);
318
this.Controls.Add(lblMsg);
319
this.Controls.Add(btnUpload);
320
this.Controls.Add(pnlFrame);
321
}
322![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
323
#endregion
324![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
325![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
创建子控件#region 创建子控件
326
protected override void EnsureChildControls()
327![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
328
329
}
330
#endregion
331
332![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
将此控件呈现给指定的输出参数#region 将此控件呈现给指定的输出参数
333![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
334
/// 将此控件呈现给指定的输出参数。
335
/// </summary>
336
/// <param name="output"> 要写出到的 HTML 编写器 </param>
337
protected override void Render(HtmlTextWriter output)
338![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
339
//开始输出
340
output.AddAttribute(HtmlTextWriterAttribute.Id,base.ID);
341
this.pnlFrame.RenderBeginTag(output);
342![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
343
//在Panel中绘制表格
344
output.AddAttribute(HtmlTextWriterAttribute.Border,"0");
345
output.AddAttribute(HtmlTextWriterAttribute.Cellpadding,"0");
346
output.AddAttribute(HtmlTextWriterAttribute.Cellspacing,"0");
347
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Width,"100%");
348
//output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Height,"25px");
349![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
350
output.RenderBeginTag(HtmlTextWriterTag.Table);
351![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
352
output.RenderBeginTag(HtmlTextWriterTag.Tr);
353
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Align,"Left");
354
//output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Width,"70%");
355
output.RenderBeginTag(HtmlTextWriterTag.Td);
356
357
//文件浏览框
358
//output.Write("<input name=\"" + base.ID + ":fileUpload\" id=\"" + base.ID + "_fileUpload\" class=\"" + this.CssInputFile + "\" style=\"width:75%\" type=\"file\" />");
359
this.fileUpload.Attributes.Add("Width", "70%");
360
this.fileUpload.Attributes.Add("Class", this.CssInputFile);
361
this.fileUpload.RenderControl(output);
362
output.Write(" ");
363
//上传按钮
364
//this.btnUpload.Attributes.Add("OnClick","javascript:if(document.getElementById('"+this.ID+"_fileUpload').value==''){alert('请浏览上传的文件');return false;}");
365
this.btnUpload.Attributes.Add("Class", this.CssButton);
366
this.btnUpload.CausesValidation = false;
367
this.btnUpload.RenderControl(output);
368![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
369
output.Write(" ");
370
//上传结果信息
371
this.lblMsg.RenderControl(output);
372
output.RenderEndTag();
373
output.RenderEndTag();
374![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
375
//显示文件信息
376
if( this.IsShowFileInfo == true )
377![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
378
output.RenderBeginTag(HtmlTextWriterTag.Tr);
379
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Valign,"Middle");
380
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Height,"24px");
381
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Class,this.CssClass);
382
output.RenderBeginTag(HtmlTextWriterTag.Td);
383
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Align,"left");
384
output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Valign,"absmiddle");
385![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
386
this.lblInfo.RenderControl(output);
387![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
388
output.RenderEndTag();// </td>
389
output.RenderEndTag();// </tr>
390
}
391![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
392
output.RenderEndTag();// </table>
393
394
//结束输出
395
this.pnlFrame.RenderEndTag(output);
396
}
397
#endregion
398![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
399![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
上载文件#region 上载文件
400
private void Upload_Click(object sender, System.EventArgs e)
401![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
402
this.lblInfo.Visible = false;
403
//this.lblInfo.Text = "";
404
this.lblMsg.Visible = false;
405
this.lblMsg.Text = "";
406![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
407
System.Web.UI.ClientScriptManager client = this.Page.ClientScript;
408
Type cstype = Page.GetType();
409![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
410
//站点根路径
411
string appPath = FileClass.GetApplicationPath();
412![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
413
// 判断路径
414
if( this.fileUpload.PostedFile == null || this.fileUpload.PostedFile.ToString() == "" )
415![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
416
//this.lblMsg.Text = "未发现操作文件";
417
//this.lblMsg.Visible = true;
418
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('未发现操作文件')</script>");
419
return;
420
}
421![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
422
FileClass classValidUser = new FileClass();
423
if( this.ComputerDomain != "" ) //如果计算机地址设置不为空则默认为存放文件到远程计算机
424![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
425
bool loginResult = false; //登陆远程计算机成功与否
426
loginResult = classValidUser.ImpersonateValidUser(this.ComputerUsername , this.ComputerPassword , this.ComputerDomain );
427
if( loginResult == false )
428![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
429
//lblMsg.Visible = true;
430
//lblMsg.Text = "登陆远程服务器失败";
431
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('登陆远程服务器失败')</script>");
432
return;
433
}
434
}
435![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
436
try
437![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
438
string fileName = null; //保存的文件短名称
439
HttpPostedFile filImage = this.fileUpload.PostedFile;
440
string sourceFileName = null; //原始文件名称
441
sourceFileName= System.IO.Path.GetFileName(filImage.FileName);
442
string sourceFileExtension = System.IO.Path.GetExtension(sourceFileName).ToLower();//扩展名 如.jpg
443![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
444
StringCollection sc = new StringCollection();
445
foreach( string str in this.FileType.Split(',') )
446
sc.Add( "."+str.ToLower() );
447
if( !sc.Contains(sourceFileExtension) )
448![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
449
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('文件格式不对')</script>");
450
return;
451
}
452![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
453
// 文件大小
454
int fileLen = filImage.ContentLength;
455
if( this.FileMaxSize != 0 ) //为0则不限制上传文件大小
456![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
457
// 判断文件大小
458
if(fileLen < 0 || fileLen > this.FileMaxSize * 1024)
459![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
460
string msg = "文件大小不能超过"+this.FileMaxSize+"K";
461
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('" + msg + "')</script>");
462
return;
463
}
464
}
465![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
466
// 读取文件到缓存
467
byte[] bufData = new byte[fileLen];
468
filImage.InputStream.Read(bufData, 0, fileLen);
469
MemoryStream ms = new MemoryStream(bufData);
470
if( this.IsRename )
471![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
472
// 以时间命名文件名,精确到毫秒
473
DateTime dtNow = DateTime.Now;
474
fileName = dtNow.ToString("yyyyMMddhhmmss")+DateTime.Now.Millisecond.ToString("000")+sourceFileExtension;
475
}
476
else
477
fileName = sourceFileName;
478![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
479
// 文件存放路径文件夹
480
string filePath = "";
481
if(this.ComputerFilePath == null || this.ComputerFilePath == "" )
482![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
483
filePath = appPath + this.ComputerUrlPath;
484
filePath = filePath.EndsWith(@"/") ? filePath : filePath+"/";
485
filePath = filePath.Replace(@"//",@"/");
486
filePath = this.Page.Server.MapPath( filePath );
487
}
488
else
489
filePath = this.ComputerFilePath.Replace(@"/",@"\");
490
filePath = filePath.EndsWith(@"\") == true ? filePath : filePath + @"\";
491
string fileFullPath = filePath + fileName;
492![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
493
//返回文件url全路径,以"/"结尾
494
string fileUrlPath = this.ComputerUrlPath.Replace(@"\",@"/");
495
fileUrlPath = this.ComputerUrlPath.EndsWith(@"/") == true ? this.ComputerUrlPath : this.ComputerUrlPath + @"/";
496
fileUrlPath += fileName;
497![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
498
// 判断存放图片文件的目录是否存在,如果不存在,则创建。
499
DirectoryInfo di = new DirectoryInfo(filePath);
500
if( di.Attributes == FileAttributes.ReadOnly )
501![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
502
string msg = "指定文件夹为只读,不能写入文件";
503
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('" + msg + "')</script>");
504
return;
505
}
506
if(!Directory.Exists(filePath))
507
Directory.CreateDirectory(filePath);
508
if( File.Exists( fileFullPath ) && !this.IsOverwrite )
509![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
510
string msg = "文件已经存在";
511
client.RegisterStartupScript(cstype, "error", "<script language='javascript'>alert('" + msg + "')</script>");
512
return;
513
}
514![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
515
// 把文件写入服务器
516
FileStream newFile = new FileStream(fileFullPath,FileMode.Create);
517
newFile.Write(bufData,0,fileLen);
518
newFile.Flush();
519
newFile.Close();
520![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
521
// 注销远程登陆
522
if( this.ComputerDomain != "" )
523
classValidUser.UndoImpersonation();
524![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
525
//返回文件路径
526
this.FileFullUrl = fileUrlPath;
527
528
//保存路径信息
529
lblMsg.Visible=true;
530
lblMsg.Text="上载成功";
531
lblInfo.Visible = true;
532
double size = (double)fileLen/1024;
533
lblInfo.Text = "文件名:"+fileName+" 文件大小:"+size.ToString("0.00")+"K";
534![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
535
//激发用户自定义事件
536
if( uploaded != null )
537
uploaded(this,new System.EventArgs());
538![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
539
}
540
catch(Exception ex)
541![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
542
lblMsg.Visible=true;
543
lblMsg.Text="上载失败:"+ex.Message;
544
lblInfo.Visible = false;
545
}
546
}
547
#endregion
548![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
549
}
550
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
13
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
26
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
36
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
37
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
38
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
49
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
50
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
61
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
62
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
73
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
74
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
85
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
102
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
103
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
106
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
111
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
112
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
114
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
115
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
116
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
117
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
118
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
121
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
122
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
124
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
127
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
128
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
129
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
130
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
131
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
132
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
133
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
134
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
136
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
137
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
138
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
139
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
140
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
142
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
143
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
144
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
145
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
146
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
147
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
148
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
149
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
150
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
151
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
152
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
153
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
154
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
155
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
156
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
157
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
158
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
160
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
161
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
162
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
163
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
164
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
165
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
167
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
168
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
169
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
170
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
171
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
172
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
173
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
174
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
175
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
176
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
177
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
178
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
179
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
180
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
181
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
182
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
183
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
184
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
186
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
188
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
189
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
190
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
191
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
192
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
193
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
194
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
195
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
197
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
198
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
199
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
200
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
201
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
202
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
203
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
204
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
206
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
208
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
209
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
210
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
211
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
212
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
213
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
214
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
215
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
216
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
217
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
218
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
219
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
220
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
221
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
222
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
223
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
224
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
225
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
226
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
227
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
228
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
229
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
230
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
231
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
232
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
233
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
234
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
235
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
236
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
237
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
238
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
239
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
240
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
241
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
242
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
243
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
244
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
245
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
246
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
247
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
248
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
249
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
250
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
251
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
252
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
253
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
254
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
255
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
256
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
257
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
258
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
259
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
260
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
261
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
262
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
263
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
264
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
265
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
266
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
267
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
268
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
269
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
270
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
271
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
272
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
273
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
274
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
275
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
276
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
277
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
278
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
279
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
280
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
281
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
282
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
283
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
284
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
285
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
286
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
287
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
288
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
289
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
290
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
291
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
292
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
293
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
294
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
295
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
296
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
297
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
298
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
299
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
300
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
301
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
302
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
303
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
304
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
305
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
306
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
307
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
308
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
309
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
310
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
311
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
312
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
313
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
314
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
315
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
316
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
317
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
318
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
319
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
320
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
321
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
322
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
323
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
324
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
325
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
326
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
327
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
328
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
329
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
330
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
331
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
332
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
333
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
334
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
335
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
336
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
337
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
338
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
339
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
340
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
341
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
342
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
343
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
344
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
345
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
346
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
347
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
348
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
349
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
350
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
351
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
352
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
353
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
354
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
355
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
356
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
357
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
358
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
359
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
360
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
361
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
362
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
363
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
364
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
365
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
366
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
367
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
368
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
369
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
370
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
371
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
372
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
373
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
374
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
375
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
376
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
377
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
378
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
379
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
380
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
381
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
382
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
383
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
384
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
385
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
386
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
387
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
388
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
389
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
390
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
391
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
392
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
393
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
394
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
395
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
396
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
397
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
398
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
399
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
400
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
401
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
402
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
403
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
404
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
405
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
406
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
407
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
408
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
409
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
410
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
411
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
412
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
413
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
414
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
415
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
416
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
417
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
418
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
419
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
420
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
421
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
422
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
423
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
424
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
425
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
426
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
427
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
428
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
429
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
430
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
431
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
432
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
433
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
434
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
435
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
436
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
437
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
438
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
439
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
440
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
441
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
442
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
443
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
444
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
445
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
446
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
447
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
448
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
449
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
450
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
451
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
452
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
453
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
454
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
455
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
456
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
457
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
458
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
459
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
460
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
461
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
462
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
463
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
464
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
465
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
466
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
467
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
468
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
469
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
470
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
471
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
472
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
473
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
474
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
475
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
476
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
477
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
478
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
479
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
480
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
481
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
482
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
483
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
484
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
485
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
486
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
487
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
488
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
489
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
490
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
491
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
492
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
493
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
494
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
495
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
496
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
497
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
498
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
499
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
500
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
501
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
502
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
503
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
504
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
505
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
506
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
507
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
508
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
509
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
510
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
511
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
512
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
513
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
514
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
515
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
516
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
517
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
518
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
519
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
520
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
521
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
522
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
523
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
524
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
525
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
526
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
527
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
528
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
529
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
530
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
531
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
532
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
533
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
534
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
535
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
536
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
537
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
538
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
539
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
540
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
541
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
542
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
543
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
544
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
545
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
546
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
547
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
548
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
549
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
550
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
自定义服务器控件开发之3:自定义缩略图和水印的图片上传控件
上传图片是经常会使用到的问题,不过每次都去些那些相同的代码确实够麻烦,所有就有了下面这个东东的出现了,哈哈!照顾到大多数人不同的需求,所以提供了多种自定义的功能,不急,下面一一介绍:
1、用户可控制是否生成缩略图。
2、用户自己定义缩略图大小,可以指定具体px或%,可以同时指定宽和高,也可以只指定宽,如果只指定宽的参数,则缩略图高度会按原始图片的宽/高比例计算得到。
3、可自定义是否为图片加上水印,水印有两种方式,一种是文本,一种是图片,分别可自定义。并且水印的位置可控制。如果是文本水印,可指定绘制的文字、文字的大小、颜色和阴影颜色已经阴影的偏移距离。
4、可控制图片上传后是否立即显示,显示位置(上传框上方或下方),显示的信息有三种可选:图片和图片信息、图片信息、仅图片。
5、可控制图片的文件大小、图片的绝对尺寸大小。
6、自定义图片存放路径。
7、可将图片上传至远程服务器,也就是非web程序运行的其他计算机,条件是需要设置相关的远程服务器登陆的ip或机器名、登陆帐号、登陆密码、共享路径和用于图片web访问Url路径,以便存放数据库。
8、用户自己定义文件浏览框、按钮的样式。
3、可自定义是否为图片加上水印,水印有两种方式,一种是文本,一种是图片,分别可自定义。并且水印的位置可控制。如果是文本水印,可指定绘制的文字、文字的大小、颜色和阴影颜色已经阴影的偏移距离。
4、可控制图片上传后是否立即显示,显示位置(上传框上方或下方),显示的信息有三种可选:图片和图片信息、图片信息、仅图片。
5、可控制图片的文件大小、图片的绝对尺寸大小。
6、自定义图片存放路径。
7、可将图片上传至远程服务器,也就是非web程序运行的其他计算机,条件是需要设置相关的远程服务器登陆的ip或机器名、登陆帐号、登陆密码、共享路径和用于图片web访问Url路径,以便存放数据库。
8、用户自己定义文件浏览框、按钮的样式。
9、另外拥护上传成功后会返回两个属性 UrlInfoBigImage和UrlInfoSmallImage ,分别是大小图片的url路径,直接获取就可以了。
10、对于控件的设置,如果是新上传图片,只需要设置上传路径ComputerUrlPath属性,如果是编辑已经上传的图片,只需要对UrlInfoBigImage赋值即可。
11、支持上传后事件,方便开发人员定义不同操作。
12、所有的路径为相对站点根路径,比如站点为 http://localhost/nowind/images/head/1.jpg ,其中nowind为虚拟目录,则图片的UrlInfoBigImage应该为 images/head/1.jpg 注意前面不带"/"。则ComputerUrlPath应该为 images/head/
11、支持上传后事件,方便开发人员定义不同操作。
12、所有的路径为相对站点根路径,比如站点为 http://localhost/nowind/images/head/1.jpg ,其中nowind为虚拟目录,则图片的UrlInfoBigImage应该为 images/head/1.jpg 注意前面不带"/"。则ComputerUrlPath应该为 images/head/
![](https://i-blog.csdnimg.cn/blog_migrate/3fd7b5d728eed5e1c9a450fd0149e261.jpeg)