`

图片上传前台检查整理

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="jquery.form.js" type="text/javascript"></script>
    <style type="text/css">
        #upload
        {
            height: 25px;
        }
        #upload input
        {
            float: left;
            margin: 0 20px 0 0;
        }
        #upload img
        {
            width: 25px;
            height: 25px;
            float: left;
        }
        #preview
        {
            width: 300px;
            margin: 10px 0 0 0;
        }
        #preview img
        {
            width: 150px;
            height: 150px;
        }
    </style>
    <script type="text/javascript">
        $(function () {
            var wait = $("<img src=\"images/loading.gif\" alt=\"正在上传\"/>");
            $("#uploadImage").change(function () {

                var isIE = /msie/i.test(navigator.userAgent) && !window.opera; //检测是否为IE
                var fileSize = 0;
                var filePath = this.value;
                //是IE并且检测不到有文件
                if (isIE && !this.files) {
                    var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
                    var file = fileSystem.GetFile(filePath);
                    fileSize = file.Size;
                } else {
                    fileSize = this.files[0].size;
                }
                var type = filePath.toString().substring(filePath.lastIndexOf('.')).toLocaleLowerCase();
                if (type != ".jpg" && type != ".jpeg" && type != ".gif" && type != ".bmp" && type != ".png") {
                    alert("请选择图片文件!");
                    return false;
                }

                var size = fileSize / 1024;
                if (size > 10000) {
                    alert("图片不能大于10M");
                    return false;
                }

                $("#form1").ajaxSubmit({
                    url: 'UploadImage.ashx',
                    beforeSubmit: function () {
                        $("#upload").append(wait); //显示缓冲状态
                        $("#upload img").css("display", "inline");
                    },
                    success: function (data) {
                        $("#upload img").fadeOut(2000);//上传成功后隐藏缓冲状态
                        if (data != "上传失败") {
                            if ($.browser.msie) {
                                //ie9可能出现兼容问题   
                                data = data.replace("<pre>", "").replace("</pre>", "");
                            }
                            $("#previewImage").attr("src", "uploadImages/" + data).hide().fadeIn(2000);
                        }
                        else {
                            alert("上传失败,请检查上传的是否为图片");
                        }
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server" method="post" enctype="multipart/form-data">
    <!-- 这里必须是 method="post" enctype="multipart/form-data" 否则失败-->
    <div id="upload">
        <input type="file" id="uploadImage" name="uploadImage"  />
    </div>
    <div id="preview">
        <img id="previewImage" src="images/noimage.jpg" alt="暂无图片" />
    </div>
    </form>
</body>
</html>
 
<%@ WebHandler Language="C#" Class="UploadImage" %>

using System;
using System.Web;

public class UploadImage : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/html";//如果是text/plain无法刷新图片

        try
        {
            HttpPostedFile file = context.Request.Files[0];

            if (file != null)
            {
                //再判断一次
                if (file.ContentLength > 1024 * 1024 * 10)
                {
                    context.Response.Write("上传失败");
                    return;
                }

                try
                {
                    //上传图片的扩展名
                    string type = file.FileName.Substring(file.FileName.LastIndexOf('.')).ToLower();

                    //非图片文件,
                    if (type != ".jpg" && type != ".jpeg" && type != ".gif" && type != ".bmp" && type != ".png")
                    {
                        context.Response.Write("上传失败");
                        return;
                    }

                    //图片保存的文件夹路径
                    string path = context.Server.MapPath("~/uploadImages/");
                    //每天上传的图片一个文件夹
                    string folder = DateTime.Now.ToString("yyyyMMdd");
                    //如果文件夹不存在,则创建
                    if (!System.IO.Directory.Exists(path + folder))
                    {
                        System.IO.Directory.CreateDirectory(path + folder);
                    }

                    //保存图片的文件名
                    string saveName = Guid.NewGuid().ToString() + type;
                     //保存原图片
                     file.SaveAs(path + folder + "/" + "Original"+saveName);
                    
                    //压缩图片,可修改大小,默认为150*150
                    Thumbnails(file.InputStream, path + folder + "/" + saveName, 150, 150);

                    

                    //返回结果
                    context.Response.Write(folder + "/" + saveName);
                }
                catch
                {
                    context.Response.Write("上传失败");
                }
            }

        }
        catch
        {
            context.Response.Write("上传失败");
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

    //生成缩略图函数
    //顺序参数:源图文件流、缩略图存放地址、模版宽、模版高
    //注:缩略图大小控制在模版区域内
    public static void Thumbnails(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight)
    {
        //从文件取得图片对象,并使用流中嵌入的颜色管理信息
        System.Drawing.Image myImage = System.Drawing.Image.FromStream(fromFileStream, true);

        //缩略图宽、高
        System.Double newWidth = myImage.Width;

        System.Double newHeight = myImage.Height;

        //宽大于模版的横图
        if (myImage.Width >= myImage.Height)
        {
            if (myImage.Width > templateWidth)
            {
                //宽按模版,高按比例缩放
                newWidth = templateWidth;
                newHeight = myImage.Height * (newWidth / myImage.Width);
            }
            else
            {
                newWidth = templateWidth;
                newHeight = templateHeight;
            }//小图片变大
        }
        //高大于模版的竖图
        else
        {
            if (myImage.Height >= templateHeight)
            {
                //高按模版,宽按比例缩放
                newHeight = templateHeight;
                newWidth = myImage.Width * (newHeight / myImage.Height);
            }
            else
            {
                newWidth = templateWidth;
                newHeight = templateHeight;
            }//小图片变大
        }

        //取得图片大小
        System.Drawing.Size mySize = new System.Drawing.Size((int)newWidth, (int)newHeight);
        //新建一个bmp图片
        System.Drawing.Image bitmap = new System.Drawing.Bitmap(mySize.Width, mySize.Height);
        //新建一个画板
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
        //设置高质量插值法
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
        //设置高质量,低速度呈现平滑程度
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        //清空一下画布
        g.Clear(System.Drawing.Color.White);
        //在指定位置画图
        g.DrawImage(myImage, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height),
        new System.Drawing.Rectangle(0, 0, myImage.Width, myImage.Height),
        System.Drawing.GraphicsUnit.Pixel);
        //保存缩略图
        bitmap.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);

        fromFileStream.Close();
        g.Dispose();
        myImage.Dispose();
        bitmap.Dispose();
    }
}
 
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    前台入住程序9.pdf

    12. **单据整理**:将所有单据放入客帐袋,如临时住宿登记单、预订单、预授权凭证和押金单。 **信用卡处理** 13. **信用卡验证**:在使用信用卡时,需检查其有效性,并进行预授权操作。 14. **客人预结账**:通过...

    前台入住程序[参考].pdf

    10. **系统录入**:在“华仪”系统中完整录入入住信息,并上传至公安上传系统。 11. **单据整理**:将所有相关单据放入客帐袋,如临时住宿登记单、预订单、预授权凭证和押金单。 12. **信用卡处理**:在使用信用卡...

    公司前台文员个人年度工作总结2020.docx

    - **归档整理:** 定期对文件进行分类整理和归档,确保文档的安全与保密。 - **目录编制:** 建立完善的文件目录系统,方便检索与查阅。 **3.2 保密制度** - **保密意识:** 加强员工保密意识教育,确保敏感信息不...

    Android技术面试资料整理

    - **算法思路**:遍历图片的所有像素点,检查每个像素点的颜色值,如果是白色且不透明,则将其透明度调整为50%。 #### 35. 发布SQLite数据库 - **打包数据库**:将SQLite数据库文件打包进APK中。 - **复制数据库**...

    PHPBB论坛官方网站上的头像打包

    确保将它们整理到一个逻辑清晰的目录结构,例如`images/avatars/gallery`,这是PHPBB论坛头像的标准上传位置。 **步骤四:上传头像** 登录到PHPBB论坛的后台管理界面,进入用户管理或设置部分,找到头像上传功能。...

    三虎企业建站系统(3hooCMS) v3.0 SP2.rar

    以下为本次改进功能 2012年8月17日 04:01:18 封包前改进功能 1,升级编辑器到最新版KindEditor 4.1.2 (2012-07-21),支持批量上传,再次检查上传类是否有安全问题 2,升级广告幻灯插件到myFocus2.0,新增加3种幻灯类型 3...

    华为5G单站验证.pdf

    在进行单站验证之前,需要对站点的状态进行全面检查,包括确认是否存在告警、小区状态是否正常、X2接口是否正常建立等。这一步骤对于确保测试的准确性非常重要。 #### 七、测试路线规划 根据不同类型的站点(如...

    国际网址导航系统 v5.8.zip

    `uploads`目录可能用于用户上传的网址信息或者相关图片,比如用户自定义的图标或推荐的网址。 总结起来,《国际网址导航系统 v5.8.zip》是一个包含源码的网址管理平台,具备用户界面、后台管理、网址分类、搜索功能...

    LTE路测指导.docx编程资料

    4. **后台参数配置检查**:包括邻区配置、重选参数等后台参数,以及PCI(物理小区标识)等前台参数的准确性,并检查基站信号质量(RSRP和SINR)。 5. **基站基本功能测试**:测试基站的切换能力、PING响应、FTP上传...

    商场盘点流程安排及注意事项

    2. **仓储/防损部**:主要负责仓库的货物整理、初次盘点、复查以及遗漏检查。 3. **收货部**:录入盘点数据,无论是手工盘点还是通过盘点机收集的数据。 4. **IT部**:确保盘点数据能准确导入到超赢软件系统中。 5. ...

    计算机毕业设计jsp病人跟踪治疗信息管理系统vue论文

    - **集成测试**:检查不同模块之间是否能够协调一致地工作。 - **性能测试**:模拟高并发场景下系统的响应能力。 - **安全性测试**:检测是否存在漏洞,保护用户数据安全。 通过以上步骤,最终实现了高效、稳定、...

    ASP ISchool随机抽题考试系统

    5.改良系统安装文件,增加数个权限检查点 V3.4Sp1(20100816) 增加 1.增加考试项目管理搜索功能 2.增加导入考生文件是否上传完成判断 3.增加导入文件格式检测提示 4.增加导入试题确认提示 5.考生管理增加刷新按钮 ...

    免费友情链接网自动收录

    1.内页增加QQ显示功能,以前只在后台显示,这样前台前显,增加了共享,互作链接! 2.提交网址页设置了,不允许提交二级域名,如还想让提交二级域名chklogin.asp页不更新即可! 3.拦截功能,设置了拦截:因为没有改...

    Discuz二次开发手册

    - **功能**: 论坛标签整理页。 - **作用**: 显示论坛标签列表。 - **开发建议**: 增强标签的分类和搜索功能。 **29. task.php** - **功能**: 论坛任务程序。 - **作用**: 触发任务执行,判断任务完成情况。 - **...

    软件工程课程设计文档

    - **完善项目与提交文档**:最后一步是对整个项目进行收尾工作,包括文档整理等。 #### 2. 系统需求分析与功能设计 这部分详细介绍了系统的需求和预期功能。 - **系统性能需求**: - **磁盘容量要求**:本系统...

    UniGUI集合说明

    - **文件上传**:提供文件上传接口,让用户上传Excel文件。 - **解析文件**:使用适当的库或组件解析Excel文件中的数据。 - **数据验证**:验证导入的数据是否符合预期格式。 - **数据导入**:将验证后的数据保存到...

    FoosunCMS网站内容管理系统 V4.0 SP5 build 0802

    FoosunCMS系统包括了信息采集、整理、分类、审核、发布和管理的全过程,具备完善的信息管理和发布管理功能,是企事业单位网站、内部网站和各类ICP网站内容管理和维护的理想工具。现推出FoosunCMS新版本是国内领先的...

Global site tag (gtag.js) - Google Analytics