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

首頁 > 開發 > AJAX > 正文

AJAX實現圖片預覽與上傳及生成縮略圖的方法

2024-09-01 08:33:47
字體:
來源:轉載
供稿:網友

要實現功能,上傳圖片時可以預覽,因還有別的文字,所以并不只上傳圖片,實現與別的文字一起保存,當然上來先上傳圖片,然后把路徑和別的文字一起寫入數據庫;同時為 圖片生成縮略圖,現只寫上傳圖片方法,文字在ajax里直接傳參數就可以了,若要上傳多圖,修改一下就可以了。

借鑒了網上資料,自己寫了一下,并不需要再新加頁面,只在一個頁面里就OK啦。

JS代碼:

//ajax保存數據,后臺方法里實現此方法 function SaveData() {      filename = document.getElementById("idFile").value;     result =test_test_aspx.SaveData(filename).value;     if (result) {       alert("保存成功!");          }     return false;   }  //實現預覽功能   function DrawImage(ImgD) {     var preW = 118;     var preH = 118;     var image = new Image();     image.src = ImgD.src;     if (image.width > 0 && image.height > 0) {       flag = true;       if (image.width / image.height >= preW/ preH) {         if (image.width > preW) {           ImgD.width = preW;           ImgD.height = (image.height * preW) / image.width;         }         else {           ImgD.width = image.width;           ImgD.height = image.height;         }         ImgD.alt = image.width + "x" + image.height;       }       else {         if (image.height > preH) {           ImgD.height = preH;           ImgD.width = (image.width * preH) / image.height;         }         else {           ImgD.width = image.width;           ImgD.height = image.height;         }         ImgD.alt = image.width + "x" + image.height;       }     }   } //當idFile內容改變時   function FileChange(Value) {     flag = false;     document.getElementById("showImg").style.display = "none";        document.getElementById("idImg").width = 10;     document.getElementById("idImg").height = 10;     document.getElementById("idImg").alt = "";     document.getElementById("idImg").src = Value;   } 

以下為前臺代碼:

<div class="cbs"> <div class="l"><label>圖片:</label></div> <div>   <input id="idFile" name="pic" type="file" runat="server" onchange="FileChange(this.value);" /> </div>     </div>      <div class="cbs"> <div class="l"><label>預覽:</label></div> <div>   <img id="idImg" height="0" width="0" src=""  <img id="showImg" width="118" height="118" //加這個主要是為了實現查看時顯示圖片,因為上面的(idImg)加上runat="server" 報錯,如有好的方法可以留言     </div> </div>    

以下為AJAX方法:

[Ajax.AjaxMethod()] public bool SaveData(string fileNamePath) {   string serverFileName = "";   string sThumbFile = "";     string sSavePath = "~/Files/";   int intThumbWidth = 118;   int intThumbHeight = 118;   string sThumbExtension = "thumb_";   try   {  //獲取要保存的文件信息  FileInfo file = new FileInfo(fileNamePath);  //獲得文件擴展名  string fileNameExt = file.Extension;   //驗證合法的文件  if (CheckFileExt(fileNameExt))  {    //生成將要保存的隨機文件名    string fileName = GetFileName() + fileNameExt;    //檢查保存的路徑 是否有/結尾    if (sSavePath.EndsWith("/") == false) sSavePath = sSavePath + "/";     //按日期歸類保存    string datePath = DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("dd") + "/";    if (true)    {  sSavePath += datePath;    }    //獲得要保存的文件路徑    serverFileName = sSavePath + fileName;    //物理完整路徑    string toFileFullPath = HttpContext.Current.Server.MapPath(sSavePath);     //檢查是否有該路徑 沒有就創建    if (!Directory.Exists(toFileFullPath))    {  Directory.CreateDirectory(toFileFullPath);    }     //將要保存的完整文件名     string toFile = toFileFullPath + fileName;     ///創建WebClient實例    WebClient myWebClient = new WebClient();    //設定windows網絡安全認證     myWebClient.Credentials = CredentialCache.DefaultCredentials;       //要上傳的文件    FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);    //FileStream fs = OpenFile();    BinaryReader r = new BinaryReader(fs);    //使用UploadFile方法可以用下面的格式    //myWebClient.UploadFile(toFile, "PUT",fileNamePath);    byte[] postArray = r.ReadBytes((int)fs.Length);    Stream postStream = myWebClient.OpenWrite(toFile, "PUT");    if (postStream.CanWrite)    {  postStream.Write(postArray, 0, postArray.Length);    }    postStream.Close();    //以上為原圖    try    {  //原圖加載    using (System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath(serverFileName)))  {    //原圖寬度和高度     int width = sourceImage.Width;    int height = sourceImage.Height;    int smallWidth;    int smallHeight;     //獲取第一張繪制圖的大小,(比較 原圖的寬/縮略圖的寬 和 原圖的高/縮略圖的高)     if (((decimal)width) / height <= ((decimal)intThumbWidth) / intThumbHeight)    {   smallWidth = intThumbWidth;   smallHeight = intThumbWidth * height / width;    }    else    {   smallWidth = intThumbHeight * width / height;   smallHeight = intThumbHeight;    }     //判斷縮略圖在當前文件夾下是否同名稱文件存在    int file_append = 0;    sThumbFile = sThumbExtension + System.IO.Path.GetFileNameWithoutExtension(fileName) + fileNameExt;     while (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(sSavePath + sThumbFile)))    {   file_append++;   sThumbFile = sThumbExtension + System.IO.Path.GetFileNameWithoutExtension(fileName) + file_append.ToString() + fileNameExt;    }    //縮略圖保存的絕對路徑     string smallImagePath = System.Web.HttpContext.Current.Server.MapPath(sSavePath) + sThumbFile;     //新建一個圖板,以最小等比例壓縮大小繪制原圖     using (System.Drawing.Image bitmap = new System.Drawing.Bitmap(smallWidth, smallHeight))    {   //繪制中間圖    using (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(Color.Black); g.DrawImage( sourceImage, new System.Drawing.Rectangle(0, 0, smallWidth, smallHeight), new System.Drawing.Rectangle(0, 0, width, height), System.Drawing.GraphicsUnit.Pixel );   }   //新建一個圖板,以縮略圖大小繪制中間圖    using (System.Drawing.Image bitmap1 = new System.Drawing.Bitmap(intThumbWidth, intThumbHeight))   { //繪制縮略圖  using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap1)) {   //高清,平滑    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;   g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;   g.Clear(Color.Black);   int lwidth = (smallWidth - intThumbWidth) / 2;   int bheight = (smallHeight - intThumbHeight) / 2;   g.DrawImage(bitmap, new Rectangle(0, 0, intThumbWidth, intThumbHeight), lwidth, bheight, intThumbWidth,intThumbHeight, GraphicsUnit.Pixel);   g.Dispose();   bitmap1.Save(smallImagePath, System.Drawing.Imaging.ImageFormat.Jpeg);    return true;    }   }    }  }    }    catch    {  //出錯則刪除   System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath(serverFileName));  return false;    }  }  else  {    return false;  }   }   catch (Exception e)   {  return false;   } } /// <summary> /// 檢查是否為合法的上傳文件 /// </summary> /// <param name="_fileExt"></param> /// <returns></returns> private bool CheckFileExt(string _fileExt) {   string[] allowExt = new string[] { ".gif", ".jpg", ".jpeg" };   for (int i = 0; i < allowExt.Length; i++)   {  if (allowExt[i] == _fileExt) { return true; }   }   return false;  }    //生成隨機數文件名 public static string GetFileName() {   Random rd = new Random();   StringBuilder serial = new StringBuilder();   serial.Append(DateTime.Now.ToString("yyyyMMddHHmmssff"));   serial.Append(rd.Next(0, 999999).ToString());   return serial.ToString();  } 

以上就是小編為大家帶來的AJAX實現圖片預覽與上傳及生成縮略圖的方法的全部內容了,希望對大家有所幫助,多多支持VeVb武林網~


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一级裸体免费视频| 欧美激情第一页xxx| 7777kkkk成人观看| 91精品视频在线免费观看| 日韩女优人人人人射在线视频| 97碰碰碰免费色视频| 欧美成人免费在线视频| 黄色一区二区在线| 国产在线观看91精品一区| 欧美电影免费看| 国产视频精品在线| 精品福利樱桃av导航| 精品国产区一区二区三区在线观看| 欧美午夜视频一区二区| 国产精品三级久久久久久电影| www.久久久久| 国产精品免费一区二区三区都可以| 中文字幕国产日韩| 日韩精品高清在线观看| 久久久av电影| 亚洲电影免费观看高清完整版在线| 亚洲精品欧美极品| 国产精品99久久久久久白浆小说| zzijzzij亚洲日本成熟少妇| 欧美日韩国产黄| 日韩成人在线电影网| 久久久久五月天| 日韩中文第一页| 亚洲免费福利视频| 亚洲少妇中文在线| 97在线视频免费播放| 欧美做爰性生交视频| 日本在线观看天堂男亚洲| 精品久久香蕉国产线看观看gif| 韩国精品美女www爽爽爽视频| 精品久久久久久久久久国产| 国产精品自在线| 亚洲国产毛片完整版| 欧美大片免费看| 亚洲精品资源美女情侣酒店| 国产成人久久久精品一区| 亚洲视频一区二区三区| 日韩中文字幕在线播放| 两个人的视频www国产精品| 51精品国产黑色丝袜高跟鞋| 97免费中文视频在线观看| 亚洲天堂免费视频| 国产一区二区丝袜高跟鞋图片| 一区二区三区四区精品| 欧美大尺度电影在线观看| 国产精品亚洲片夜色在线| 一本一道久久a久久精品逆3p| 欧美在线一级视频| 欧美日韩国产123| 国产精品毛片a∨一区二区三区|国| 亚洲欧美激情视频| 欧美激情免费在线| 亚洲第一精品福利| 4438全国成人免费| 国产精品黄色av| 欧美亚洲国产视频| 欧美一级在线亚洲天堂| 色av吧综合网| 成人黄色短视频在线观看| 欧美精品免费在线| 懂色av影视一区二区三区| 国产成人精品日本亚洲专区61| 日韩经典第一页| 国产婷婷97碰碰久久人人蜜臀| 色偷偷av一区二区三区乱| 欧美极品欧美精品欧美视频| 午夜精品久久久久久久久久久久| 91精品在线国产| 国产精品日韩在线观看| 亚洲视频自拍偷拍| 国产成人极品视频| 欧美视频不卡中文| 久久久www成人免费精品| 98精品国产高清在线xxxx天堂| 国产在线精品自拍| 成人一区二区电影| 国内精品美女av在线播放| 欧美一级大片在线免费观看| 岛国av一区二区在线在线观看| 午夜精品一区二区三区视频免费看| 亚洲国产精品电影| 久久久久久久久久国产精品| 九九九热精品免费视频观看网站| 欧美怡红院视频一区二区三区| 91精品国产91久久久久久最新| 国产91ⅴ在线精品免费观看| 久久影院资源站| 国产91露脸中文字幕在线| 日韩电影免费观看在线| 亚洲精品www久久久久久广东| 日本a级片电影一区二区| 亚洲天堂免费在线| 亚洲欧美在线看| 日本成人激情视频| 国产精品视频99| 超在线视频97| 日韩欧美黄色动漫| 国产精品入口尤物| 久久成人这里只有精品| 成人福利免费观看| 国产在线高清精品| 亚洲国产精品嫩草影院久久| 国产精品久久色| 久久成人综合视频| 欧美日韩午夜剧场| 国内精品小视频在线观看| 国产精品丝袜久久久久久不卡| 国产日韩视频在线观看| 国产一区二区三区日韩欧美| 热门国产精品亚洲第一区在线| 亚洲电影免费观看高清完整版| 亚洲qvod图片区电影| 九九热最新视频//这里只有精品| 亚洲自拍偷拍福利| 欧美在线观看www| 亚洲欧洲国产一区| 在线观看日韩www视频免费| 国产精品免费一区豆花| 伊人久久男人天堂| www.欧美免费| 久久伊人精品天天| 精品久久久久久久久久| 亚洲国产小视频| 国产v综合ⅴ日韩v欧美大片| 国产欧美日韩丝袜精品一区| 最好看的2019年中文视频| 欧美多人爱爱视频网站| 97精品国产97久久久久久免费| 亚洲美女动态图120秒| 高清欧美性猛交| 欧美性生交xxxxxdddd| y97精品国产97久久久久久| 国产视频精品一区二区三区| 青青久久aⅴ北条麻妃| 久久久久久久久久久人体| 日韩欧美在线播放| 欧美精品在线看| 国产精品高潮视频| 91最新在线免费观看| 日韩精品中文字幕在线观看| 色老头一区二区三区在线观看| 日韩精品视频在线观看网址| 亚洲丝袜在线视频| 国产精品久久久久久久久久小说| 久久久视频精品| 亚洲精品欧美一区二区三区| 成人午夜黄色影院| 欧美最猛性xxxxx免费| 国产91网红主播在线观看| 精品在线小视频| 97久久超碰福利国产精品…| 日韩av第一页| 国产精品久久久av久久久| 色妞欧美日韩在线| 亚洲综合中文字幕在线| 97在线视频一区| 国产精品美腿一区在线看| 青青a在线精品免费观看| 亚洲综合在线小说|