Parsi Coders
چک کردن سايز و حجم و نوع تصوير در آپلود - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Web Development and Design (http://parsicoders.com/forumdisplay.php?fid=47)
+--- انجمن: ASP, ASP.NET (http://parsicoders.com/forumdisplay.php?fid=49)
+--- موضوع: چک کردن سايز و حجم و نوع تصوير در آپلود (/showthread.php?tid=2923)



چک کردن سايز و حجم و نوع تصوير در آپلود - aspdotnet - 11-30-2012

سلام.
من به صورت بايد به کاربر امکان آپلود عکس بدم.
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
حالا لطفاً راهنمايي کنيد چطور اين شرايط رو چک کنم در هر دو روش؟


RE: چک کردن سايز و حجم و نوع تصوير در آپلود - Amin_Mansouri - 11-30-2012

درود
من تا جایی خبر دارم میخوای یه چیز خوب بنویسی
خیلی از کاربرها هنوز نمیدن چطوری میشه resize کرد
بنظر من resize کن !


RE: چک کردن سايز و حجم و نوع تصوير در آپلود - aspdotnet - 11-30-2012

يعني کاربر عکس با هر سايزي رو بتونه آپلود کنه و من بعد حجم اون رو کم کنم؟
ميشه يه لينک خوب در اين مورد معرفي کنيد؟
خوب در مورد پسوند چي؟
ببينيد آخه من تو سايت هاتولرن يه کنترل ديدم و از اون هم استفاده کردم
يه کنترلي مثل کنترل ايميج هستش که بهش width و height مي دي و عکس رو هم کوچک مي کنه و هم سايزش رو کم مي کنه ولي عکس جديد جايي ذخيره نميشه البته اين طور که من متوجه شدم
حالا منظور شما همينه؟
خوب اينطوري که خوب نيست کاربر هر حجم و سايزي رو بتونه آپلود کنه.


RE: چک کردن سايز و حجم و نوع تصوير در آپلود - Amin_Mansouri - 11-30-2012

کد:
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
بهتر از این لینک بالا فکر نکنم بتونم بهت بگم