`
dcdc723
  • 浏览: 187406 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

上传图片并生成缩略图

    博客分类:
  • net
阅读更多
using System;
using System.Configuration;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using TipDa;
//http://dcdc723.iteye.com
//by dcdc723 指尖
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlHelper sqlhelper = new SqlHelper();
        //   FileUpload1.Attributes.Add("onchange", "return show()"); 

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string name = FileUpload1.FileName;
        string size = FileUpload1.PostedFile.ContentLength.ToString();//文件大小.
        string type = FileUpload1.PostedFile.ContentType;//文件类型.
        string type2 = name.Substring(name.LastIndexOf(".") + 1);//LastIndexOf()最后一个索引位置匹配.Substring()里面的+1是重载.
        //  name = DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day+DateTime.Now.Hour+DateTime.Now.Minute+DateTime.Now.Millisecond+"." + type2;
        Random rd = new Random();
        string sj = (rd.Next() + 10).ToString();
        name = DateTime.Now.ToString("yyyyMMddHHmmss") + sj + "." + type2;       
        string ipath = Server.MapPath("~/js") + "\\" + name;//取得根目录下面的路径.
        if (type2 == "jpg" || type2 == "gif" || type2 == "bmp" || type2 == "png" || type2 == "jpeg")
        {
            Response.Write(ipath);
           // Response.End();
            FileUpload1.SaveAs(ipath);//保存方法,参数是一个地址字符串.
            Label1.Text = "~/js/" + name;
            string picbig = "11";
            bool flag=false;
            FixPic2(ipath, ref picbig,ref flag);
            if (flag)
            {
             Response.Write("<font color=red>"+picbig+"</font>"); //大图名字 
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('上传成功!');</script>"); 
            }
           

        }
        else
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('文件类型不正确!');</script>");

        }
    }
    protected void FileUpload1_Disposed(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('改变');</script>");
    }




    private string FixPic2(string pic,ref string picbig,ref bool flag)
    {
        if (!System.IO.File.Exists(pic))
            return null;

        System.Drawing.Image image = System.Drawing.Image.FromFile(pic);
        if (image != null)
        {
            if (image.Width > 220 || image.Height > 220)
            {
                System.Drawing.Bitmap final_image = null;
                System.Drawing.Graphics graphic = null;
                try
                {
                    string pic1 = pic.Insert((pic.Length - 4),"_big");
                    picbig = pic1;
                    System.IO.File.Copy(pic, pic1, true);
                    int width = image.Width;
                    int height = image.Height;
                    int target_width = 220;
                    int target_height = 220;
                    int new_width, new_height;
                    float target_ratio = (float)target_width / (float)target_height;
                    float image_ratio = (float)width / (float)height;
                    if (target_ratio > image_ratio)
                    {
                        new_height = target_height;
                        new_width = (int)Math.Floor(image_ratio * (float)target_height);
                    }
                    else
                    {
                        new_height = (int)Math.Floor((float)target_width / image_ratio);
                        new_width = target_width;
                    }

                    new_width = new_width > target_width ? target_width : new_width;
                    new_height = new_height > target_height ? target_height : new_height;
                    final_image = new System.Drawing.Bitmap(target_width, target_height);
                    graphic = System.Drawing.Graphics.FromImage(final_image);
                    graphic.FillRectangle(new System.Drawing.SolidBrush(System.Drawing.Color.White), new System.Drawing.Rectangle(0, 0, target_width, target_height));
                    int paste_x = (target_width - new_width) / 2;
                    int paste_y = (target_height - new_height) / 2;
                    graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; /* new way */
                    //graphic.DrawImage(thumbnail_image, paste_x, paste_y, new_width, new_height);
                    graphic.DrawImage(image, paste_x, paste_y, new_width, new_height);
                    image.Dispose();
                    //string newFileName = System.IO.Path.GetDirectoryName(Server.MapPath(pic)) + "/" + System.IO.Path.GetFileNameWithoutExtension(pic) + "_s" + System.IO.Path.GetExtension(pic);
                    Response.Write(pic);
                    final_image.Save(pic, System.Drawing.Imaging.ImageFormat.Jpeg);
                    flag = true;
                  //  Response.Write("Fix OK--:" + pic + "");
                    Response.Flush();
                    //return System.IO.Path.GetDirectoryName(pic).Replace("\\", "/") + "/" + System.IO.Path.GetFileNameWithoutExtension(pic) + "_s" + System.IO.Path.GetExtension(pic);
                }
                catch (Exception ex)
                {
                    Response.Write(ex.ToString());
                }
                finally
                {
                    if (final_image != null) final_image.Dispose();
                    if (graphic != null) graphic.Dispose();
                    if (image != null) image.Dispose();
                }
            }
        }
        return null;
    }










}

 

分享到:
评论

相关推荐

    基于Springmvc的上传图片并生成缩略图

    总结来说,基于Springmvc的图片上传和生成缩略图功能涉及以下几个关键步骤:配置Springmvc支持文件上传,编写Controller处理上传请求,生成并保存缩略图,以及与前端交互提供反馈。这些步骤都需要对Springmvc、文件I...

    java 上传图片生成缩略图

    ### Java 上传图片生成缩略图的知识点解析 在现代Web开发中,处理图像是一项常见的需求,尤其是在涉及用户上传图片的应用场景中。本篇文章将基于提供的代码片段详细讲解如何使用Java来实现上传图片并自动生成缩略图...

    jsp上传图片并生成缩略图

    在Java服务器页面(JSP)中,上传图片并生成缩略图是一项常见的需求,尤其在构建网站或Web应用时。这个过程涉及到多个步骤,包括文件上传、图片处理和存储。以下将详细介绍如何实现这一功能。 1. **文件上传**: -...

    JSP上传图片并生成缩略图

    在这个特定的场景中,"JSP上传图片并生成缩略图"是一个常见的功能需求,尤其是在开发包含用户交互和多媒体内容的Web应用时。下面我们将详细探讨这一技术实现的关键知识点。 首先,**上传组件**是Web应用中用于接收...

    上传图片并生成高清晰缩略图

    - 通过条件判断决定是基于宽度还是高度来生成缩略图。 6. **保存缩略图:** - 生成缩略图后,将其保存到指定路径下。 - 可以在文件名中加入特定标识符,例如“_thumb”,以便于区分原图和缩略图。 7. **返回...

    html5图片上传本地生成缩略图预览

    在图片上传场景中,这使得我们可以在用户选择图片后立即进行处理,例如生成缩略图。 2. **Canvas**:Canvas是HTML5的一个重要组成部分,它是一个可编程的图形区域,可以通过JavaScript来绘制图形。在图片预览和缩略...

    Asp.net上传图片同时生成缩略图和水印图

    在ASP.NET中,上传图片并生成缩略图和水印图是一项常见的需求,特别是在创建网站或者应用程序时,需要处理用户上传的图像。以下是一个关于如何在ASP.NET中实现这个功能的详细说明。 首先,上传图片是通过HTML的`...

    在ASP.NET中上传图片并生成缩略图

    ### 在ASP.NET中上传图片并生成缩略图 在Web应用开发中,处理用户上传的图片是一项常见的功能需求。尤其对于那些需要展示图像的应用(如博客、电子商务网站等),能够高效地处理这些图像,包括上传原始图片以及自动...

    PHP+FLASH批量上传图片并生成缩略图

    FLASH+PHP上传,返回值到当前页面,可以自定义传送值到PHP上传处理的页面,这样就可以定义接受图片...update.php逻辑处理,file_upload.php上传类,可定义源文件名或者随机命名和缩略图大小. 没分了,来赚点积分花花

    asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip

    在这个"asp无组件上传图片,aspjpeg生成缩略图和添加水印.zip"压缩包中,包含了解决这一问题的代码示例。主要涉及到以下几个核心知识点: 1. **图片上传**: ASP可以通过表单提交实现图片文件的上传。用户选择本地...

    java批量上传图片并生成缩略图

    在Java编程环境中,批量上传图片并生成缩略图是一项常见的需求,特别是在开发Web应用时,例如内容管理系统或者论坛。这个任务通常涉及到文件处理、图像处理和服务器端编程等多个技术领域。接下来,我们将深入探讨...

    struts2图片上传并生成缩略图,展示缩略图点击显示大图

    在这个场景中,我们将关注如何使用Struts2框架结合FileUpload库来实现图片上传,并通过生成缩略图来优化用户体验。Struts2是一个流行的Java Web框架,它提供了一种结构化的方式来处理用户请求,而FileUpload则是处理...

    js实现上传图片即刻生成缩略图预览

    "js实现上传图片即刻生成缩略图预览"这个功能就是为了让用户体验更加流畅,允许他们在上传图片的同时立即查看预览效果,而无需等待完整的图片加载。这在处理大尺寸或者高分辨率图片时尤其有用,因为生成的缩略图可以...

    批量上传图片并生成缩略图java实现

    使用jspsmartupload实现图片的批量上传,并保存到服务器的指定路径,自动生成缩略图,与图片的路径相同。(需要导入jspsmartupload.jar,在工程下的WebContent\WEB-INF\lib中 )

    html5移动端图片上传本地生成缩略图预览(单图上传)

    预览图片后,我们可能还需要生成缩略图,以减小数据传输量或适应不同的展示尺寸。这里我们可以利用HTML5的Canvas元素。 1. 创建一个canvas元素,并获取其2D渲染上下文。 ```javascript var canvas = document....

    jSP上传图片生成缩略图

    在这个特定的场景中,"jSP上传图片生成缩略图"是一个常见的需求,尤其在网站开发中,如论坛、博客或电商网站等,用户可能需要上传图片,而为了提高页面加载速度和优化用户体验,通常会生成缩略图作为预览。...

    多图片上传-判断图片像素-生成缩略图

    接着,前端或后端生成缩略图并保存。对于大型网站或应用,为了提高效率,还可以采用异步处理,即先将原始图片存储,然后在后台生成缩略图。 文件名"myupload"可能指的是一个与多图片上传相关的文件,可能包含了实现...

    【ASP.NET编程知识】ASP.NET实现上传图片并生成缩略图的方法.docx

    ASP.NET 实现上传图片并生成缩略图的方法 该文档介绍了使用 ASP.NET 实现上传图片并生成缩略图的方法。首先,通过检查上传文件的格式是否有效,以确保上传的文件是图片格式。如果不是图片格式,則显示错误信息...

Global site tag (gtag.js) - Google Analytics