none
Jqery ile Toplu Resim Yükleme RRS feed

  • 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.

    16 Aralık 2015 Çarşamba 07:31

Yanıtlar

Tüm Yanıtlar