亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖

2024-07-10 13:26:51
字體:
來源:轉載
供稿:網友

如圖:

點擊瀏覽,選擇圖片之后,右面顯示圖片

asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖

第一步:

創建CtFileUpLoad.ascx

復制代碼 代碼如下:


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="CtFileUpLoad.ascx.cs"
Inherits="WebParts_CtFileUpLoad" %>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<iframe src="/WebParts/FileUpLoad.aspx?<%=ParsValue %>" frameborder="0" scrolling="no"></iframe>
</td>
<td>
<asp:TextBox runat="server"></asp:TextBox>
<div runat="server">
</div>
</td>
</tr>
</table>
<script language="javascript">
function <%=ClientID %>CallLoaded()
{
<% =OnLoaded %>;
}
</script>


復制代碼 代碼如下:


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Drawing;
public partial class WebParts_CtFileUpLoad : System.Web.UI.UserControl
{
public bool AutoFileName
{
get
{
object ob = ViewState[ClientID + "AutoFileName"];
if (ob == null)
ob = true;
return (bool)ob;
}
set
{
ViewState[ClientID + "AutoFileName"] = value;
}
}
public string UpLoadPath
{
get
{
object ob = ViewState[ClientID + "UpLoadPath"];
if (ob == null)
ob = "UPLOADFILES";
return ob.ToString();
}
set
{
ViewState[ClientID + "UpLoadPath"] = value;
}
}
public string OnLoaded
{
get
{
object ob = ViewState[ClientID + "OnLoaded"];
if (ob == null)
ob = "";
return ob.ToString();
}
set
{
ViewState[ClientID + "OnLoaded"] = value;
}
}
public string SupportExtension
{
get
{
object ob = ViewState[ClientID + "SupportExtension"];
if (ob == null)
{
ob = "gif|png|jpeg|jpg";
}
return ob.ToString();
}
set
{
ViewState[ClientID + "SupportExtension"] = value.Replace(".", "");
}
}
public bool ShowImg
{
get
{
object ob = ViewState[ClientID + "ShowImg"];
if (ob == null)
ob = true;
return (bool)ob;
}
set
{
if ((bool)value)
dvImg.Style["display"] = "block";
else
dvImg.Style["display"] = "none";
}
}
public string FileName
{
get
{
return tbFileName.Text;
}
}
protected string ParsValue = "";
protected void Page_Load(object sender, EventArgs e)
{
ParsValue = "AutoFileName=" + AutoFileName.ToString() + "&SupportExtension=" + SupportExtension + "&UpLoadPath=" + UpLoadPath
+ "&ID=" + ClientID;
}
}


第二步:
創建FileUpLoad.aspx

復制代碼 代碼如下:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpLoad.aspx.cs" Inherits="WebParts_FileUpLoad" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form runat="server">
<div>
<asp:FileUpload runat="server" onchange="upload(this);" />
<asp:Button runat="server" />
</div>
</form>
</body>
</html>
<script language="javascript">
function upload(ob)
{
var expStr=/.*(<%=SupportExtension%>)$/i;
if(!expStr.test(ob.value))
{
alert("上傳文件類型有誤。/n(支持文件類型:<%=SupportExtension%>)");
}
else
{
var btUp=document.getElementById("<%=btUp.ClientID %>");
btUp.click();
}
}
</script>


復制代碼 代碼如下:


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Drawing;
using System.IO;
public partial class WebParts_FileUpLoad : System.Web.UI.Page
{
protected string SupportExtension = "";
protected string UpLoadPath = "";
protected bool AutoFileName;
protected string ParentID = "";
protected void Page_Load(object sender, EventArgs e)
{
SupportExtension = Request.QueryString["SupportExtension"];
UpLoadPath = Request.QueryString["UpLoadPath"];
AutoFileName = bool.Parse(Request.QueryString["AutoFileName"].ToString());
ParentID = Request.QueryString["ID"].ToString();
}
protected void btUp_Click(object sender, EventArgs e)
{
Boolean fileOK = false;
if (FileUpload1.HasFile)
{
String fileExtension =
System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
String[] allowedExtensions = SupportExtension.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == "." + allowedExtensions[i])
{
fileOK = true;
}
}
if (fileOK)
{
string path = "";
string name = "";
string sPath = "";
if (AutoFileName)
{
name = DateTime.Now.Ticks.ToString() + System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
}
else
{
name = FileUpload1.FileName;
}
sPath = Request.PhysicalApplicationPath + "http://" + UpLoadPath + "http://";
path = sPath + name; //圖片地址
string fileName = name; //文件名
string fileName_s = "s_" + name; //縮略圖文件名稱
try
{
//FileInfo file = new FileInfo(name);
// string fileContentType = FileUpload1.PostedFile.ContentType;
//string name = FileUpload1.PostedFile.FileName;//客戶端文件路徑
//string fileName_sy = "sy_" + file.Name; //水印圖文件名稱(文字)
//string fileName_syp = "syp_" + file.Name;//水印圖文件名稱(圖片)
//string webFilePath = Server.MapPath(UpLoadPath + "http://" + fileName);
//string webFilePath_s = Server.MapPath(UpLoadPath + "http://" + fileName_s);
string webFilePath = sPath + fileName;//服務器端文件路徑
string webFilePath_s = sPath + fileName_s;//服務器端縮略圖路徑

if (!File.Exists(webFilePath))
{
if (FileUpload1.PostedFile.ContentLength < 2 * 1024 * 1024) //如果圖片小于2M
{
try
{
FileUpload1.SaveAs(path); //使用saveAS方法保存文件
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
if (image.Width > 800 || image.Height > 600)
{
MakeThumbnail(webFilePath, webFilePath_s, 800, 600, "W");//生成縮略圖的方法
}
else
{
MakeThumbnail(webFilePath, webFilePath_s, 300, 230, "W");//生成縮略圖的方法
}
image.Dispose();
// AddShuiYinWord(webFilePath, webFilePath_sy); //保存水印文字圖片
// AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);//保存添加水印圖片之后的圖片
//MakeThumbnail(webFilePath, webFilePath_s, 400, 300, "W");//生成縮略圖的方法

Page.RegisterClientScriptBlock("succcess", @"<script>
alert('上傳成功');
parent.document.getElementById('" + ParentID + "_" + "tbFileName" + @"').value='" + fileName_s + @"';
</script>");
}
catch (Exception ex)
{
Page.RegisterClientScriptBlock("err", "<script>alert('提示:文件上傳失敗,失敗原因::" + ex.Message + "');</script>");
}
}
else
{
Page.RegisterClientScriptBlock("err", "<script>alert('提示:圖片不能大于2M');</script>");
}
}
else
{
this.Page.RegisterClientScriptBlock("err", "<script>alert('圖片重復');</script>");
}
}
catch (System.Exception err)
{
this.Page.RegisterClientScriptBlock("err", "<script>alert('" + err.Message + "');</script>");
}
try
{
Bitmap bmp = new Bitmap(path);
int width = 0, height = 0;
int dvalue = 200;
if (bmp.Width < dvalue & bmp.Height < 200)
{
width = bmp.Width;
height = bmp.Height;
}
else if (bmp.Width > bmp.Height)
{
width = dvalue;
height = dvalue * (bmp.Width / bmp.Height);
}
else
{
height = dvalue;
width = dvalue * (bmp.Height / bmp.Width);
}
this.Page.RegisterClientScriptBlock("show", @"<script>
parent.VarValue='" + UpLoadPath + "http://www.49028c.com/" + fileName_s + "';" +
"parent." + ParentID + "CallLoaded();" +
"parent.document.getElementById('" + ParentID + "_" + "dvImg" + @"').innerHTML=""" +
"<img src='http://www.49028c.com/" + UpLoadPath + "http://www.49028c.com/" + fileName_s + "'/>" + @""";
</script>");
bmp.Dispose();
}
catch
{
}
finally
{
//****判斷該文件是否存在,如果存在,則刪除圖片
if (File.Exists(path))
{
//****刪除用戶客戶端上傳的圖片,服務器上只保存縮略之后的圖片
File.Delete(path);
}
}
}
else
{
this.Page.RegisterClientScriptBlock("err", "<script>alert('error');</script>");
}
}
}
/// <summary>
/// 生成縮略圖
/// </summary>
/// <param>源圖路徑(物理路徑)</param>
/// <param>縮略圖路徑(物理路徑)</param>
/// <param>縮略圖寬度</param>
/// <param>縮略圖高度</param>
/// <param>生成縮略圖的方式</param>
public void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;
switch (mode)
{
case "HW"://指定高寬縮放(可能變形)
break;
case "W"://指定寬,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,寬按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高寬裁減(不變形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
}
//新建一個bmp圖片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
//新建一個畫板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//設置高質量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//設置高質量,低速度呈現平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空畫布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);
//在指定位置并且按指定大小繪制原圖片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(x, y, ow, oh),
System.Drawing.GraphicsUnit.Pixel);
try
{
//以jpg格式保存縮略圖
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
/// <summary>
/// 在圖片上增加文字水印
/// </summary>
/// <param>原服務器圖片路徑</param>
/// <param>生成的帶文字水印的圖片路徑</param>
protected void AddShuiYinWord(string Path, string Path_sy)
{
string addText = "http://www.49028c.com";
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawImage(image, 0, 0, image.Width, image.Height);
System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
g.DrawString(addText, f, b, 15, 15);
g.Dispose();
image.Save(Path_sy);
image.Dispose();
}
/// <summary>
/// 在圖片上生成圖片水印
/// </summary>
/// <param>原服務器圖片路徑</param>
/// <param>生成的帶圖片水印的圖片路徑</param>
/// <param>水印圖片路徑</param>
protected void AddShuiYinPic(string Path, string Path_syp, string Path_sypf)
{
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawImage(copyImage, new System.Drawing.Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
g.Dispose();
image.Save(Path_syp);
image.Dispose();
}
}


屬性:
SupportExtension 自定義上傳的格式,用"|"分隔;
UpLoadPath   自定義上傳到服務器的文件夾;
AutoFileName  ture表示根據時間自動生成文件名,不會重復,false表示原來的圖片名稱,重復會覆蓋.

轉載請注明出處
2009-12-24 18:39:27 by 齊學佳

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成电影网站| 91亚洲精品一区| 国产精品天天狠天天看| 国内精品久久久久影院 日本资源| 久久精品国产2020观看福利| 国产亚洲精品综合一区91| 亚洲最大福利网站| 91精品国产高清久久久久久91| 亚洲自拍偷拍色片视频| 久久久999精品| 91精品一区二区| 日韩av一区在线| 91豆花精品一区| 成人激情电影一区二区| 精品视频久久久| 亚洲国产女人aaa毛片在线| 国产91免费看片| 日韩av一区二区在线观看| 日韩欧美亚洲一二三区| 国产精品极品尤物在线观看| 亚洲天堂免费视频| 精品国内亚洲在观看18黄| 亚洲国产精品人人爽夜夜爽| 国产在线999| 成人国产精品av| 亚洲欧美一区二区三区在线| 久久久之久亚州精品露出| 亚洲自拍偷拍一区| 亚洲免费中文字幕| 成人高h视频在线| 久久99久久99精品免观看粉嫩| 色偷偷偷综合中文字幕;dd| 亚洲精品免费一区二区三区| 欧美做爰性生交视频| 韩国视频理论视频久久| 亚洲成色777777在线观看影院| 668精品在线视频| 亚洲精品久久久久| 亚洲九九九在线观看| 久久精品国产一区| 日韩免费av在线| 中文字幕少妇一区二区三区| 精品亚洲一区二区三区| 国产精品第七影院| 欧美电影在线播放| 色妞色视频一区二区三区四区| 亚洲高清色综合| 亚洲免费一在线| 午夜精品久久久久久久久久久久久| 久久最新资源网| 色悠悠久久久久| 热久久这里只有精品| 久久伊人91精品综合网站| 国产视频在线观看一区二区| 美女撒尿一区二区三区| 久久久久久91香蕉国产| 亚洲男人天堂久| 久久久久久久av| 国产精品美女主播| 久久伊人精品一区二区三区| 国产精品激情自拍| 色在人av网站天堂精品| 国产精品pans私拍| 成人福利视频在线观看| 国产精品99久久99久久久二8| 欧美成人精品在线播放| 亚洲精品自产拍| 亚洲自拍高清视频网站| 久久久国产影院| 亚洲国产精品中文| 欧美在线观看网址综合| 热久久99这里有精品| 午夜精品久久久久久久白皮肤| www.欧美精品一二三区| 亚洲xxxxx性| 中文字幕自拍vr一区二区三区| 91免费人成网站在线观看18| 欧美一级片免费在线| 一区二区亚洲精品国产| 另类视频在线观看| 一区二区亚洲欧洲国产日韩| 亚洲欧美日韩在线高清直播| 日韩av一卡二卡| 精品视频9999| 欧美最猛性xxxxx免费| 高清日韩电视剧大全免费播放在线观看| 午夜精品国产精品大乳美女| 97精品视频在线观看| 欧美肥臀大乳一区二区免费视频| 国产日产亚洲精品| 亚洲国产一区二区三区四区| 最好看的2019年中文视频| 成人免费福利在线| 亚洲品质视频自拍网| 中文综合在线观看| 亚洲午夜精品久久久久久久久久久久| 91精品在线影院| 青青精品视频播放| 国内精品久久久久久久| 欧美成人黄色小视频| 久久精品成人欧美大片| 国产亚洲精品91在线| 91成品人片a无限观看| 亚洲欧美日韩精品久久奇米色影视| 3344国产精品免费看| 国产自摸综合网| 欧美孕妇毛茸茸xxxx| 国产精品一区久久久| 欧美日韩成人网| 欧美日韩国产成人在线观看| 韩国国内大量揄拍精品视频| 88国产精品欧美一区二区三区| 欧美又大又粗又长| 日韩中文字幕在线视频| 国产91精品青草社区| 精品视频一区在线视频| 日韩午夜在线视频| 久久全球大尺度高清视频| 成人情趣片在线观看免费| 国产精品露脸自拍| 日韩视频第一页| 欧美激情视频一区二区三区不卡| 亚洲国产成人久久综合一区| 亚洲国产精品久久久| 亚洲天堂视频在线观看| 欧美丰满片xxx777| 欧美日韩国产成人在线观看| 国产性猛交xxxx免费看久久| 午夜精品三级视频福利| 国产精品免费一区豆花| 国产精品福利在线| 久久午夜a级毛片| 成人伊人精品色xxxx视频| 欧美色videos| 欧美特黄级在线| 久久精品91久久久久久再现| 亚洲精品免费一区二区三区| 国产精品青青在线观看爽香蕉| 色综合久久悠悠| 国产精品久久久久久久久久小说| 91精品视频专区| 91在线免费看网站| 欧美色播在线播放| 国产成+人+综合+亚洲欧美丁香花| 亚洲一区二区三区sesese| 色噜噜亚洲精品中文字幕| 日本精品一区二区三区在线| 亚洲第一页在线| 91久久精品国产91久久| 日韩免费在线电影| 久久成人国产精品| 久久精品91久久香蕉加勒比| www.xxxx欧美| 91精品啪aⅴ在线观看国产| 日韩三级影视基地| 欧美激情一区二区三区在线视频观看| 91久久精品久久国产性色也91| 欧美视频国产精品| 欧美亚洲激情视频| 亚洲精品www久久久久久广东| 欧美最顶级丰满的aⅴ艳星| 欧美老女人在线视频| 国产欧美精品在线| 欧美大片网站在线观看|