En iyi yanıtlayıcılar
Jqery ile Toplu Resim Yükleme

Soru
-
Merhaba Arkadaşlar
Bir projem var ajax ile resim yüklüyorum, yüklediğim resimleri boyutlandırıyorum. Ancak bu işlemi yaparken Sunucuda 15 adet resim yüklendiğinde 5 dakika gibi bir zaman alıyor. Local'de hemen yükleme oluyor. Bu durum acaba normal mi Kodlar aşağıdaki gibidir. Acaba 15 adet resim yükleme talebi aynı anda gerçekleştiği için mi yükleme işlemi geç bitiyor?. Bunun önüne nasıl geçebiliriz.
Jqery Kodu
function Kaydetimg() { document.getElementById("imgDiv").innerHTML = "<img src='../images/looding.gif' />"; $("#imgDiv").delay(10000); if (document.getElementById("resimCheck").checked == true) { var sdc = document.getElementById("FileID").value.split(','); for (var i = 0; i < sdc.length; i++) { if (sdc[i] != "") Imgsil(0, sdc[i]); } document.getElementById("FileID").value = ""; } var files = document.getElementById("ImgFile").files; var FileName; var ImgSay = 1; for (var i = 0; i < files.length; i++) { var data = new FormData(); var rast = Math.round(Math.random() * 1525249); FileName = rast + files[i].name.replace(" ", "-"); data.append(FileName, files[i]); document.getElementById("FileID").value += FileName + ","; //$("#imgDiv").append("<img src='../images/products/" + FileName + "'/><br/>"); $("#FileID").delay(90000); $.ajax({ url: "FileUploadHandler.ashx", type: "POST", data: data, contentType: false, processData: false, success: function (result) { //MeseggeBoxShow(1, result); $("#İmgBilgi").html("Resimler Yükleniyor. Lütfen Bekleyiniz" + ImgSay + "/" + files.length); resimlerigoster(); if (ImgSay == files.length) { $("#İmgBilgi").html("Tüm Resimler Yüklendi" + ImgSay + "/" + files.length); } ImgSay++; }, error: function (err) { MeseggeBoxShow(0, err); } }); } } function resimlerigoster() { document.getElementById("imgDiv").innerHTML = ""; var resimler = document.getElementById("FileID").value.split(","); var id = document.getElementById("KayitID").value; for (var i = 0; i < resimler.length; i++) { if (resimler[i] != "") $("#imgDiv").append("<div> <input type='button' class='btn btn-primary' data-value='" + resimler[i] + "' value='Sil' data-v='" + id + "' /><img src='../images/products/thumbs/" + resimler[i] + "'/> </div>"); } }
FileUploadHandler.ashx dosya kodları
using System; using System.Collections.Generic; using System.Linq; using System.Web; using WebPromosyon.Model; using WebPromosyon.admin.Class; using System.Drawing; using System.Web.Helpers; namespace WebPromosyon.admin { public class FileUploadHandler : IHttpHandler { DataDataContext db = new DataDataContext(); ImagesOpreation imo = new ImagesOpreation(); public void ProcessRequest(HttpContext context) { string name = ""; if (context.Request.Files.Count > 0) { HttpFileCollection files = context.Request.Files; for (int i = 0; i < files.Count; i++) { HttpPostedFile file = files[i]; imgDelete id = new imgDelete(); id.imgDelete1 = files.Keys[i]; id.CretiaDate = DateTime.Now; db.imgDeletes.InsertOnSubmit(id); db.SubmitChanges(); string fname = context.Server.MapPath("~/images/products/" + files.Keys[i]); file.SaveAs(fname); string path = context.Server.MapPath("~/images/products/"); name = files.Keys[i]; try { WebImage image = new WebImage(path + name); if (image != null) { string filename = Guid.NewGuid().ToString().Substring(0, 16) + image.FileName.Remove(0, image.FileName.LastIndexOf(".")); if (image.Width >= 1024) { image.Resize(1000, ((1000 * image.Height) / image.Width)).Crop(1, 1, 1, 1).Write(); if (image.Height >= 744) { var muchHeight = image.Height - 744; image.Resize(image.Width, ((image.Width * (image.Height - muchHeight)) / image.Width)).Crop(1, 1, 1, 1).Write(); } else { image.Resize(1000, ((1000 * image.Height) / image.Width)).Crop(1, 1, 1, 1).Write(); } } else { image.Resize(1000, ((1000 * image.Height) / image.Width)).Crop(1, 1, 1, 1).Write(); if (image.Height >= 744) { var muchHeight = image.Height - 744; image.Resize(image.Width, ((image.Width * (image.Height - muchHeight)) / image.Width)).Crop(1, 1, 1, 1).Write(); } else { image.Resize(1000, ((1000 * image.Height) / image.Width)).Crop(1, 1, 1, 1).Write(); } } image.Save(path + name).Crop(1, 1, 1, 1).Write(); var watermark = image.AddImageWatermark(path + name); var background = new WebImage(path + "background-watermark.jpg"); background.AddImageWatermark(watermark, watermark.Width, watermark.Height, "Center", "Middle", 100, 10); background.Save(path + name).Crop(1, 1, 1, 1).Write(); System.IO.File.Delete(path + name); background.Save(path + name); background.Resize(300, ((300 * background.Height) / background.Width)).Crop(1, 1, 1, 1).Write(); background.Save(path + "thumbs/" + name); } } catch { } } context.Response.ContentType = "text/plain"; context.Response.Write(name); } } public bool IsReusable { get { return false; } } } }
Ekran Görüntüsü 5 Dakika sonra yüklenen resimler.
Yanıtlar
-
- Yanıt Olarak İşaretleyen Musa adsız 16 Aralık 2015 Çarşamba 08:44
-
-
Dosyaların boyutuna ve network hızına göre değişir. 15 dk da sürebilir 1 saat te sürebilir. Bunun sabit bir katsayısı yok maalesef.
Her şeyi denediğin halde yapamadıysan henüz denemediğin şeyler var demektir.
- Yanıt Olarak İşaretleyen Musa adsız 16 Aralık 2015 Çarşamba 08:44
Tüm Yanıtlar
-
- Yanıt Olarak İşaretleyen Musa adsız 16 Aralık 2015 Çarşamba 08:44
-
-
-
Dosyaların boyutuna ve network hızına göre değişir. 15 dk da sürebilir 1 saat te sürebilir. Bunun sabit bir katsayısı yok maalesef.
Her şeyi denediğin halde yapamadıysan henüz denemediğin şeyler var demektir.
- Yanıt Olarak İşaretleyen Musa adsız 16 Aralık 2015 Çarşamba 08:44