کنترل تصویر هنگام آپلود در ckeditor
0 0

کنترل تصویر هنگام آپلود در ckeditor


کنترل تصویر هنگام آپلود در ckeditor

در این پست آموزش نحوه کنترل آپلود عکس در ckeditor را توضیح می دهیم.

در آموزش های قبلی نحوه اضافه کردن syntaxhighlighter و آپلود عکس به ckeditor را توضیح دادیم برای این کارمان حرفه ای تر شود. هنگام آپلود عکس ، عکس انتخابی جهت آپلود را کنترل می کنید. مثلا حجم عکس از یک اندازه بزرگتر نباشد یا فرمت عکس فرمت یک تصویر باشد و ...

برای این کا در فایل Upload.ashx را که در آموزش های قبلی ایجاد کرده بودیم را باز کنید و کد آن را به شکل زیر تغییر دهید.

<%@ WebHandler Language="C#" Class="Upload" %>

using System;
using System.Web;

public class Upload : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {

        HttpPostedFile uploads = context.Request.Files["upload"];
        string CKEditorFuncNum = context.Request["CKEditorFuncNum"];
        try
        {


            string typeFile = uploads.ContentType;

            typeFile = typeFile.ToUpper();
            if ((typeFile != "IMAGE/JPEG") && // Firefox!
                (typeFile != "IMAGE/PJPEG") && // Internet Explorer!
                (typeFile != "IMAGE/GIF") &&
                (typeFile != "IMAGE/PNG"))
            {
                string message = "پسوند فایل مجاز نیست";
                context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + message + "\");</script>");
                context.Response.End();
            }

            if (uploads.ContentLength == 0)
            {
                string message = "آپلود فایل با مشکل مواجه شده است لطفا مجددا سعی نمائید!";
                context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + message + "\");</script>");
                context.Response.End();
            }

            if (uploads.ContentLength > 150 * 1024)
            {
                string message = "حداکثر حجم مجاز برای آپلود 150 کیلوبایت میباشد!";
                context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + message + "\");</script>");
                context.Response.End();
            }

            System.Drawing.Image oImage =
                        System.Drawing.Image.FromStream(uploads.InputStream);

            if ((oImage.Width > 620) || (oImage.Height > 450))
            {
                string message = "دقت داشته باشید حتما اندازه عکس ها بیشتر از  450 در 620 پیکسل نباشد-طول=450 و عرض=620!";
                context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + message + "\");</script>");
                context.Response.End();
            }

            string imageName = System.IO.Path.GetFileName(uploads.FileName);// دریافت نام عکس

            string strFileExtension = imageName;
            int fileExtPos = strFileExtension.LastIndexOf(".");
            if (fileExtPos >= 0)
                strFileExtension = strFileExtension.Substring(fileExtPos, 4);


            string fileName = System.DateTime.Now.ToString();

            fileName = fileName.Replace("/", "-").Replace(":", "-").Replace(" ", "-");

            uploads.SaveAs(context.Server.MapPath(".") + "\\Images\\Upload\\" + fileName + strFileExtension);//مسیر آپلود فایل

            //provide direct URL here
            string url = "/Images/Upload/" + fileName + strFileExtension;// مسیر کامل فایل جهت نمایش در ویرایشگر
            context.Response.Write("<script>window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum + ", \"" + url + "\");</script>");
            context.Response.End();





        }
        catch (System.Exception ex)
        {

        }

    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

در شرط اول فرمت عکس را بررسی کردیم که از سه نوع فرمت jpg , gif , png باشد.

در شرط دوم حجم عکس را کنترل کردیم که صفر نباشد.

در شرط سوم حجم فایل را بررسی کردیم که از 150 کیلوبایت بیشتر نباشد.

و در شرط آخر طول و عرض عکس را بررسی کردیم که از 620 و 450 بزرگتر نباشد

در ایجا کارمان تمام می شود و نوبت به ذخیره تصویر در سرور می شود ولی برای که کارمان اصولی تر شود  نام عکس را براساس تاریخ و ساعت سیستم ذخیره می کنیم که هم از تکراری بودن نام عکس جلوگیری شود و هم تصاویر را بر اساس تاریخ و ساعت ذخیره کنیم.

ابتدا نام  و پسوند عکس را به استفاده از دستور زیر دریافت کردیم و در متغییر  imageNameقرار دادیم

سپس با استفاده شرط زیر پسوند فایل را بدست می آوریم  و در strFileExtension قرار می دهیم

سپس تاریخ و ساعت سیستم را دریافت می کنیم  و سپس با استفاده از دستور Replace کاراکترهای / را به – و : را به – و همچنین جای خالی را به – تغییر می دهیم و در نهایت تصویر را ذخیره می کنیم

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۱۶ دی ۱۳۹۳
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران VIP
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha

این صفحه را می‌پسندم