温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:简单实用的个人Blog站点源码
当前文件:
personalBlog/admin/ftb.imagegallery.aspx[14K,2009-6-12 11:51:58],打开代码结构图
personalBlog/admin/ftb.imagegallery.aspx[14K,2009-6-12 11:51:58],打开代码结构图1<%@ Page language="c#" %> 2
<script runat="server"> 3
4
// Messages 5
private string NoFileMessage = "您没有选择文件。"; 6
private string UploadSuccessMessage = "上传成功"; 7
private string UploadFailureMessage = "上传失败。"; 8
private string NoImagesMessage = "该文件夹不存在或者是空的"; 9
private string NoFolderSpecifiedMessage = "您要上传到的文件夹不存在。"; 10
private string NoFileToDeleteMessage = "您没有选中要删除的文件。"; 11
private string InvalidFileTypeMessage = "您无法上传这种类型的文件。"; 12
private string[] AcceptedFileTypes = new string[] {"jpg","jpeg","jpe","gif","png"}; 13
14
// Configuration 15
private bool UploadIsEnabled = true; // 是否允许上传文件 16
private bool DeleteIsEnabled = true; // 是否允许删除文件 17
private string DefaultImageFolder = "upload"; // 默认的起始文件夹 18
19
private void Page_Load(object sender, System.EventArgs e) { 20
string isframe = "" + Request["frame"]; 21
22
if (isframe != "") { 23
MainPage.Visible = true; 24
iframePanel.Visible = false; 25
26
string rif = "" + Request["rif"]; 27
string cif = "" + Request["cif"]; 28
29
if (cif != "" && rif != "") { 30
RootImagesFolder.Value = rif; 31
CurrentImagesFolder.Value = cif; 32
} else { 33
RootImagesFolder.Value = DefaultImageFolder; 34
CurrentImagesFolder.Value = DefaultImageFolder; 35
} 36
37
UploadPanel.Visible = UploadIsEnabled; 38
DeleteImage.Visible = DeleteIsEnabled; 39
40
string FileErrorMessage = ""; 41
string ValidationString = ".*("; 42
//[\.jpg]|[\.jpeg]|[\.jpe]|[\.gif]|[\.png])$" 43
for (int i=0;i<AcceptedFileTypes.Length; i++) { 44
ValidationString += "[\\." + AcceptedFileTypes[i] + "]"; 45
if (i < (AcceptedFileTypes.Length-1)) ValidationString += "|"; 46
FileErrorMessage += AcceptedFileTypes[i]; 47
if (i < (AcceptedFileTypes.Length-1)) FileErrorMessage += ", "; 48
} 49
FileValidator.ValidationExpression = ValidationString+")$"; 50
FileValidator.ErrorMessage=FileErrorMessage; 51
52
if (!IsPostBack) { 53
DisplayImages(); 54
} 55
} else { 56
57
} 58
} 59
60
public void UploadImage_OnClick(object sender, EventArgs e) { 61
if (Page.IsValid) { 62
if (CurrentImagesFolder.Value != "") { 63
if (UploadFile.PostedFile.FileName.Trim() != "") { 64
if (IsValidFileType(UploadFile.PostedFile.FileName)) { 65
try { 66
string UploadFileName = ""; 67
string UploadFileDestination = ""; 68
UploadFileName = UploadFile.PostedFile.FileName; 69
UploadFileName = UploadFileName.Substring(UploadFileName.LastIndexOf("\\")+1); 70
UploadFileDestination = HttpContext.Current.Request.PhysicalApplicationPath; 71
UploadFileDestination += CurrentImagesFolder.Value; 72
UploadFileDestination += "\\"; 73
UploadFile.PostedFile.SaveAs(UploadFileDestination + UploadFileName); 74
ResultsMessage.Text = UploadSuccessMessage; 75
} catch(Exception ex) { 76
//ResultsMessage.Text = "Your file could not be uploaded: " + ex.Message; 77
ResultsMessage.Text = UploadFailureMessage; 78
} 79
} else { 80
ResultsMessage.Text = InvalidFileTypeMessage; 81
} 82
} else { 83
ResultsMessage.Text = NoFileMessage; 84
} 85
} else { 86
ResultsMessage.Text = NoFolderSpecifiedMessage; 87
} 88
} else { 89
ResultsMessage.Text = InvalidFileTypeMessage; 90
91
} 92
DisplayImages(); 93
} 94
95
public void DeleteImage_OnClick(object sender, EventArgs e) { 96
if (FileToDelete.Value != "" && FileToDelete.Value != "undefined") { 97
try { 98
string AppPath = HttpContext.Current.Request.PhysicalApplicationPath; 99
System.IO.File.Delete(AppPath + CurrentImagesFolder.Value + "\\" + FileToDelete.Value); 100
ResultsMessage.Text = "已删除: " + FileToDelete.Value; 101
} catch(Exception ex) { 102
ResultsMessage.Text = "删除失败。"; 103
} 104
} else { 105
ResultsMessage.Text = NoFileToDeleteMessage; 106
} 107
DisplayImages(); 108
} 109
110
private bool IsValidFileType(string FileName) { 111
string ext = FileName.Substring(FileName.LastIndexOf(".")+1,FileName.Length-FileName.LastIndexOf(".")-1); 112
for (int i=0; i<AcceptedFileTypes.Length; i++) { 113
if (ext == AcceptedFileTypes[i]) { 114
return true; 115
116
} 117
} 118
return false; 119
} 120
121
122
private string[] ReturnFilesArray() { 123
if (CurrentImagesFolder.Value != "") { 124
try { 125
string AppPath = HttpContext.Current.Request.PhysicalApplicationPath; 126
string ImageFolderPath = AppPath + CurrentImagesFolder.Value; 127
string[] FilesArray = System.IO.Directory.GetFiles(ImageFolderPath,"*"); 128
return FilesArray; 129
130
131
} catch { 132
133
return null; 134
} 135
} else { 136
return null; 137
} 138
139
} 140
141
private string[] ReturnDirectoriesArray() { 142
if (CurrentImagesFolder.Value != "") { 143
try { 144
string AppPath = HttpContext.Current.Request.PhysicalApplicationPath; 145
string CurrentFolderPath = AppPath + CurrentImagesFolder.Value; 146
string[] DirectoriesArray = System.IO.Directory.GetDirectories(CurrentFolderPath,"*"); 147
return DirectoriesArray ; 148
} catch { 149
return null; 150
} 151
} else { 152
return null; 153
} 154
} 155
156
public void DisplayImages() { 157
string[] FilesArray = ReturnFilesArray(); 158
string[] DirectoriesArray = ReturnDirectoriesArray(); 159
string AppPath = HttpContext.Current.Request.PhysicalApplicationPath; 160
string AppUrl; 161
162
//Get the application's URL 163
if (Request.ApplicationPath == "/") 164
AppUrl = Request.ApplicationPath; 165
else 166
AppUrl = Request.ApplicationPath + "/"; 167
168
GalleryPanel.Controls.Clear(); 169
if ( (FilesArray == null || FilesArray.Length == 0) && (DirectoriesArray == null || DirectoriesArray.Length == 0) ) { 170
gallerymessage.Text = NoImagesMessage + ": " + RootImagesFolder.Value; 171
} else { 172
string ImageFileName = ""; 173
string ImageFileLocation = ""; 174
175
int thumbWidth = 94; 176
int thumbHeight = 94; 177
178
if (CurrentImagesFolder.Value != RootImagesFolder.Value) { 179
180
System.Web.UI.HtmlControls.HtmlImage myHtmlImage = new System.Web.UI.HtmlControls.HtmlImage(); 181
myHtmlImage.Src = AppUrl + "admin/ftb/folder.up.gif"; 182
myHtmlImage.Attributes["unselectable"]="on"; 183
myHtmlImage.Attributes["align"]="absmiddle"; 184
myHtmlImage.Attributes["vspace"]="36"; 185
186
string ParentFolder = CurrentImagesFolder.Value.Substring(0,CurrentImagesFolder.Value.LastIndexOf("\\")); 187
188
System.Web.UI.WebControls.Panel myImageHolder = new System.Web.UI.WebControls.Panel(); 189
myImageHolder.CssClass = "imageholder"; 190
myImageHolder.Attributes["unselectable"]="on"; 191
myImageHolder.Attributes["onclick"]="divClick(this,'');"; 192
myImageHolder.Attributes["ondblclick"]="gotoFolder('" + RootImagesFolder.Value + "','" + ParentFolder.Replace("\\","\\\\") + "');"; 193
myImageHolder.Controls.Add(myHtmlImage); 194
195
System.Web.UI.WebControls.Panel myMainHolder = new System.Web.UI.WebControls.Panel(); 196
myMainHolder.CssClass = "imagespacer"; 197
myMainHolder.Controls.Add(myImageHolder); 198
199
System.Web.UI.WebControls.Panel myTitleHolder = new System.Web.UI.WebControls.Panel(); 200
myTitleHolder.CssClass = "titleHolder"; 201
myTitleHolder.Controls.Add(new LiteralControl("向上")); 202
myMainHolder.Controls.Add(myTitleHolder); 203
204
GalleryPanel.Controls.Add(myMainHolder); 205
206
} 207
208
foreach (string _Directory in DirectoriesArray) { 209
210
try { 211
string DirectoryName = _Directory.ToString(); 212
213
214
System.Web.UI.HtmlControls.HtmlImage myHtmlImage = new System.Web.UI.HtmlControls.HtmlImage(); 215
myHtmlImage.Src = AppUrl + "admin/ftb/folder.big.gif"; 216
myHtmlImage.Attributes["unselectable"]="on"; 217
myHtmlImage.Attributes["align"]="absmiddle"; 218
myHtmlImage.Attributes["vspace"]="29"; 219
220
System.Web.UI.WebControls.Panel myImageHolder = new System.Web.UI.WebControls.Panel(); 221
myImageHolder.CssClass = "imageholder"; 222
myImageHolder.Attributes["unselectable"]="on"; 223
myImageHolder.Attributes["onclick"]="divClick(this);"; 224
myImageHolder.Attributes["ondblclick"]="gotoFolder('" + RootImagesFolder.Value + "','" + DirectoryName.Replace(AppPath,"").Replace("\\","\\\\") + "');"; 225
myImageHolder.Controls.Add(myHtmlImage); 226
227
System.Web.UI.WebControls.Panel myMainHolder = new System.Web.UI.WebControls.Panel(); 228
myMainHolder.CssClass = "imagespacer"; 229
myMainHolder.Controls.Add(myImageHolder); 230
231
System.Web.UI.WebControls.Panel myTitleHolder = new System.Web.UI.WebControls.Panel(); 232
myTitleHolder.CssClass = "titleHolder"; 233
myTitleHolder.Controls.Add(new LiteralControl(DirectoryName.Replace(AppPath + CurrentImagesFolder.Value + "\\",""))); 234
myMainHolder.Controls.Add(myTitleHolder); 235
236
GalleryPanel.Controls.Add(myMainHolder); 237
} catch { 238
// nothing for error 239
} 240
} 241
242
foreach (string ImageFile in FilesArray) { 243
244
try { 245
246
ImageFileName = ImageFile.ToString(); 247
ImageFileName = ImageFileName.Substring(ImageFileName.LastIndexOf("\\")+1); 248
ImageFileLocation = AppUrl; 249
ImageFileLocation = ImageFileLocation.Substring(ImageFileLocation.LastIndexOf("\\")+1); 250
//galleryfilelocation += "/"; 251
ImageFileLocation += CurrentImagesFolder.Value; 252
ImageFileLocation += "/"; 253
ImageFileLocation += ImageFileName; 254
System.Web.UI.HtmlControls.HtmlImage myHtmlImage = new System.Web.UI.HtmlControls.HtmlImage(); 255
myHtmlImage.Src = ImageFileLocation; 256
System.Drawing.Image myImage = System.Drawing.Image.FromFile(ImageFile.ToString()); 257
myHtmlImage.Attributes["unselectable"]="on"; 258
//myHtmlImage.border=0; 259
260
// landscape image 261
if (myImage.Width > myImage.Height) { 262
if (myImage.Width > thumbWidth) { 263
myHtmlImage.Width = thumbWidth; 264
myHtmlImage.Height = Convert.ToInt32(myImage.Height * thumbWidth/myImage.Width); 265
} else { 266
myHtmlImage.Width = myImage.Width; 267
myHtmlImage.Height = myImage.Height; 268
} 269
// portrait image 270
} else { 271
if (myImage.Height > thumbHeight) { 272
myHtmlImage.Height = thumbHeight; 273
myHtmlImage.Width = Convert.ToInt32(myImage.Width * thumbHeight/myImage.Height); 274
} else { 275
myHtmlImage.Width = myImage.Width; 276
myHtmlImage.Height = myImage.Height; 277
} 278
} 279
280
if (myHtmlImage.Height < thumbHeight) { 281
myHtmlImage.Attributes["vspace"] = Convert.ToInt32((thumbHeight/2)-(myHtmlImage.Height/2)).ToString(); 282
} 283
284
285
System.Web.UI.WebControls.Panel myImageHolder = new System.Web.UI.WebControls.Panel(); 286
myImageHolder.CssClass = "imageholder"; 287
myImageHolder.Attributes["onclick"]="divClick(this,'" + ImageFileName + "');"; 288
myImageHolder.Attributes["ondblclick"]="returnImage('" + ImageFileLocation.Replace("\\","/") + "','" + myImage.Width.ToString() + "','" + myImage.Height.ToString() + "');"; 289
myImageHolder.Controls.Add(myHtmlImage); 290
291
292
System.Web.UI.WebControls.Panel myMainHolder = new System.Web.UI.WebControls.Panel(); 293
myMainHolder.CssClass = "imagespacer"; 294
myMainHolder.Controls.Add(myImageHolder); 295
296
System.Web.UI.WebControls.Panel myTitleHolder = new System.Web.UI.WebControls.Panel(); 297
myTitleHolder.CssClass = "titleHolder"; 298
myTitleHolder.Controls.Add(new LiteralControl(ImageFileName + "<BR>" + myImage.Width.ToString() + "x" + myImage.Height.ToString())); 299
myMainHolder.Controls.Add(myTitleHolder); 300
301
//GalleryPanel.Controls.Add(myImage); 302
GalleryPanel.Controls.Add(myMainHolder); 303
304
myImage.Dispose(); 305
} catch { 306
307
} 308
} 309
gallerymessage.Text = ""; 310
} 311
} 312
</script> 313
<asp:panel id="MainPage" runat="server" visible="false"> 314
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" > 315
<HTML> 316
<HEAD> 317
<META HTTP-EQUIV="Expires" CONTENT="0"> 318
<title>插入图片</title> 319
<style> 320
321
body { 322
margin: 0px 0px 0px 0px; 323
padding: 0px 0px 0px 0px; 324
background: #ffffff; 325
width: 100%; 326
overflow:hidden; 327
border: 0; 328
} 329
330
body,tr,td { 331
color: #000000; 332
font-family: Verdana, Arial, Helvetica, sans-serif; 333
font-size: 10pt; 334
} 335
336
div.imagespacer { 337
width: 120; 338
height: 126; 339
text-align: center; 340
float: left; 341
font: 10pt verdana; 342
margin: 5px; 343
overflow: hidden; 344
} 345
div.imageholder { 346
margin: 0px; 347
padding: 0px; 348
border: 1 solid #CCCCCC; 349
width: 100; 350
height: 100; 351
} 352
353
div.titleholder { 354
font-family: ms sans serif, arial; 355
font-size: 8pt; 356
width: 100; 357
text-overflow: ellipsis; 358
overflow: hidden; 359
white-space: nowrap; 360
} 361
362
</style> 363
364
365
<script language="javascript"> 366
lastDiv = null; 367
function divClick(theDiv,filename) { 368
if (lastDiv) { 369
lastDiv.style.border = "1 solid #CCCCCC"; 370
} 371
lastDiv = theDiv; 372
theDiv.style.border = "2 solid #316AC5"; 373
374
document.getElementById("FileToDelete").value = filename; 375
376
} 377
function gotoFolder(rootfolder,newfolder) { 378
window.navigate("ftb.imagegallery.aspx?frame=1&rif=" + rootfolder + "&cif=" + newfolder); 379
} 380
function returnImage(imagename,width,height) { 381
var arr = new Array(); 382
arr["filename"] = imagename; 383
arr["width"] = width; 384
arr["height"] = height; 385
window.parent.returnValue = arr; 386
window.parent.close(); 387
} 388
</script> 389
</HEAD> 390
<body> 391
<table width=100% height=100% cellpadding=0 cellspacing=0 border=0> 392
393
<FORM encType="multipart/form-data" runat="server"> 394
395
<tr><td> 396
<div id="galleryarea" style="width=100%; height:100%; overflow: auto;"> 397
<asp:label id="gallerymessage" runat="server"></asp:label> 398
<asp:panel id="GalleryPanel" runat="server"></asp:panel> 399
</div> 400
</td></tr> 401
<asp:Panel id="UploadPanel" runat="server"> 402
<tr><td height=16 style="padding-left:10px;border-top: 1 solid #999999; background-color:#99ccff;"> 403
404
<table> 405
<tr> 406
<td valign=top><input id="UploadFile" type="file" name="UploadFile" runat="server" style="width:300;"/></td> 407
<td valign=top><asp:button id="UploadImage" Text="上传" runat="server" onclick="UploadImage_OnClick" /></td> 408
<td valign=top><asp:button id="DeleteImage" Text="删除" runat="server" onclick="DeleteImage_OnClick" /></td> 409
<td valign=middle> 410
</tr> 411
<tr> 412
<td colspan=3> 413
<asp:RegularExpressionValidator runat="server" 414
ControlToValidate="UploadFile" 415
id="FileValidator" display="dynamic"/> 416
<asp:literal id="ResultsMessage" runat="server" /> 417
</td> 418
</tr></table> 419
<input type="hidden" id="FileToDelete" Value="" runat="server" /> 420
<input type="hidden" id="RootImagesFolder" Value="images" runat="server" /> 421
<input type="hidden" id="CurrentImagesFolder" Value="images" runat="server" /> 422
</td></tr> 423
</asp:panel> 424
</form> 425
</table> 426
</body> 427
</HTML> 428
</asp:panel> 429
<asp:panel id="iframePanel" runat="server" > 430
<html> 431
<head><title>插入图片</title></head> 432
<style> 433
body { 434
margin: 0px 0px 0px 0px; 435
padding: 0px 0px 0px 0px; 436
background: #ffffff; 437
overflow:hidden; 438
} 439
</style> 440
<body> 441
<iframe style="width:100%;height:100%;border:0;" border=0 frameborder=0 src="ftb.imagegallery.aspx?frame=1&<%=Request.QueryString%>"></iframe> 442
</body> 443
</html> 444
</asp:panel> 445





private string[] AcceptedFileTypes
}
}
