Parsi Coders

نسخه‌ی کامل: چک کردن سايز و حجم و نوع تصوير در آپلود
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام.
من به صورت بايد به کاربر امکان آپلود عکس بدم.
1. از روي کامپيوتر
2. از روي سرور
روش يک رو يک تکست باکس و يه دکمه گذاشتم و از کد زير استفاده کردم
کد:
protected void btn_priview_Click(object sender, EventArgs e)
    {
        WebClient wc = new WebClient();
        string url = txt_logourl.Text;
        string[] Arry = url.Split('/');
        string filename = Arry[Arry.Length - 1];
        string savepath = Server.MapPath("~/Uploads/" + filename);
        wc.DownloadFile(url, savepath);
        img_logo.ImageUrl = "Uploads/" + filename;

        ViewState["logoname"] = filename;
    }

و در روش 2 از AsyncFileUpload مربوط به Ajax toolkit استفاده کردم.

حالا عکس من بايد موارد زير چک بشه براش
200 * 200 پيکسل
حجم کمتر از 800 kB
نوع : png-gif-jpg
حالا لطفاً راهنمايي کنيد چطور اين شرايط رو چک کنم در هر دو روش؟
درود
من تا جایی خبر دارم میخوای یه چیز خوب بنویسی
خیلی از کاربرها هنوز نمیدن چطوری میشه resize کرد
بنظر من resize کن !
يعني کاربر عکس با هر سايزي رو بتونه آپلود کنه و من بعد حجم اون رو کم کنم؟
ميشه يه لينک خوب در اين مورد معرفي کنيد؟
خوب در مورد پسوند چي؟
ببينيد آخه من تو سايت هاتولرن يه کنترل ديدم و از اون هم استفاده کردم
يه کنترلي مثل کنترل ايميج هستش که بهش width و height مي دي و عکس رو هم کوچک مي کنه و هم سايزش رو کم مي کنه ولي عکس جديد جايي ذخيره نميشه البته اين طور که من متوجه شدم
حالا منظور شما همينه؟
خوب اينطوري که خوب نيست کاربر هر حجم و سايزي رو بتونه آپلود کنه.
کد:
Imports System.Drawing
Imports System.Drawing.Drawing2D

Dim gu As New Guid
gu = Guid.NewGuid
Dim ext As String = Path.GetExtension(FileUpload1.FileName)
ImageName = gu.ToString & ext
FileUpload1.SaveAs(Server.MapPath("~/DynamicImages/News/" & ImageName))
Using fl = File.OpenRead(Server.MapPath("~/DynamicImages/News/" & ImageName))
    Using thumbFile = File.Create(Server.MapPath("~/DynamicImages/News/thumbnails/" & ImageName))
        ResizeImage(0.1, fl, thumbFile)
    End Using
End Using

Private Sub ResizeImage(ByVal scaleFactor As Double, ByVal fromStream As Stream, ByVal toStream As Stream)
    Using image__1 = Image.FromStream(fromStream)
        'Dim newWidth = CInt(image__1.Width * scaleFactor)
        ' Dim newHeight = CInt(image__1.Height * scaleFactor)
        Dim newWidth = 150
        Dim newHeight = 150

        Using thumbnailBitmap = New Bitmap(newWidth, newHeight)
            Using thumbnailGraph = Graphics.FromImage(thumbnailBitmap)
                thumbnailGraph.CompositingQuality = CompositingQuality.HighQuality
                thumbnailGraph.SmoothingMode = SmoothingMode.HighQuality
                thumbnailGraph.InterpolationMode = InterpolationMode.HighQualityBicubic

                Dim imageRectangle = New Rectangle(0, 0, newWidth, newHeight)
                thumbnailGraph.DrawImage(image__1, imageRectangle)

                thumbnailBitmap.Save(toStream, image__1.RawFormat)
            End Using
        End Using
    End Using
End Sub

اینم ببین
http://www.nerdymusings.com/LPMArticle.asp?ID=32
بهتر از این لینک بالا فکر نکنم بتونم بهت بگم