`

MVC学习之六_____上传单张图片

    博客分类:
  • MVC4
mvc 
阅读更多
模板页代码:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>上传图片</title>
</head>
<body>
    <div> 
        <div class="leftImage">
            <input type="file" id="picAjax" class="customButton" />
            <span id="uploadInfo"></span>
            <input type="button" id="submitPic" class="customButton" value="上传" />
        </div>
        <div class="rightImage">
            <img id="selImg" src="" alt="" />
        </div>
    </div>
    <script type="text/javascript" src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
        //选择图片事件
        var picString = "";
        var id = 11;
        $("#picAjax").change(function (e) {
            var file = e.delegateTarget.files[0];
              if (file.type == 'image/jpeg' || file.type == 'image/png') {
                    $("#uploadInfo").text("图片格式正确,请点击提交按钮");
                    var reader = new FileReader();
                    reader.readAsDataURL(file);
                        reader.onload = function (ret)
                        {
                        picString = reader.result;
                         //预览图片
                         $("#selImg").attr({ "src": picString });
                    }
              }
              else {
                    $("#uploadInfo").text("请上传jpg或png格式的图片!");
              }
        });

        //上传图片事件
        $("#submitPic").click(function () {
            if (picString != "") {
                $.ajax("../BasicData/UploadPhoto", {
                    type: "post",
                    datatype: "json",
                    data: {
                        picString:picString,
                        id:id
                    },
                    error: function () { },
                    success: function (result) {
                        if (result.suc == true) {
                            $("#uploadInfo").text("图片上传成功!");
                            $("#ImageList").empty();
                            ReadPicture();
                        }
                    }
                });
            }
        });
    </script>
</body>
</html>




后台代码:
#region 模板页视图
        public ActionResult UploadPhoto()
        {
            return View();
        }
        #endregion

        #region 接收上传图片
        [HttpPost]
        public ActionResult UploadPhoto(string picString, string id)
        {
            var tmpArr = picString.Split(',');
            byte[] bytes = Convert.FromBase64String(tmpArr[1]);
            MemoryStream ms = new MemoryStream(bytes);
            ms.Write(bytes, 0, bytes.Length);
            var img = Image.FromStream(ms, true);

            var path = System.AppDomain.CurrentDomain.BaseDirectory;
            var imagesPath = System.IO.Path.Combine(path, @"Uploads\AgrCorporations\" + id + "\\");
            if (!System.IO.Directory.Exists(imagesPath))
                System.IO.Directory.CreateDirectory(imagesPath);
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo) + ".png";
            var bitImage = GetThumbnailImage(img, 400, 300);
            bitImage.Save(imagesPath + fileName);
            bool isOk = true;
            string msg = imagesPath + fileName;
            return Json(new { suc = isOk, msg = msg });
        }


        #endregion

        #region  图片压缩方法
        /// <summary>
        /// 图片压缩方法
        /// </summary>
        /// <param name="srcImage">Image图片</param>
        /// <param name="width">要压缩的图片宽</param>
        /// <param name="height">要压缩的图片高</param>
        /// <returns></returns>
        private static Image GetThumbnailImage(Image srcImage, int width, int height)
        {
            Image bitmap = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(bitmap);

            //设置高质量插值法 
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;

            //在指定位置并且按指定大小绘制原图片的指定部分 
            g.DrawImage(srcImage, new Rectangle(0, 0, width, width),
                new Rectangle(0, 0, srcImage.Width, srcImage.Height),
                GraphicsUnit.Pixel);

            return bitmap;
        }
        #endregion



参考:https://www.cnblogs.com/sharealex/articles/8086595.html
原博客中还有删除及查看的方法,可自己学习
分享到:
评论

相关推荐

    java代码实现多张图片单张图片文件上传_DEMO_图片上传_

    本DEMO主要展示了如何实现单张或多张图片文件的上传功能。以下将详细讲解涉及的知识点。 1. **文件I/O操作**:在Java中,进行文件上传首先需要处理的是本地文件的读取。`java.io.File`类用于表示文件对象,可以获取...

    .net实现图片批量上传

    在.NET框架中,图片批量上传是一项常见的功能,尤其在开发Web应用或云存储服务时,用户可能需要一次性上传多张图片。本篇文章将详细介绍如何利用.NET技术实现这一功能,包括必要的概念、步骤以及可能遇到的问题。 ...

    asp.net+ajax批量上传图片,批量上传,批量上传图片,上传图片

    在IT行业中,批量上传图片是一项常见的功能需求,尤其是在Web应用中。...通过"JQueryUploadDemo"这样的示例项目,开发者可以更直观地学习这些技术的结合使用,从而在实际项目中实现高效、友好的批量图片上传功能。

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 项目经过严格测试,确保可以运行! 采用前后端分离的方式进行开发,实现了几种常用的文件上传功能...

    upload_jquery_150609_多图片上传.rar

    本文将详细介绍如何使用jQuery库结合Java后端实现单张或多张图片的上传功能。首先,我们需要理解jQuery的核心特性,它是一种轻量级的JavaScript库,提供了丰富的DOM操作、事件处理、动画效果等功能,极大地简化了...

    批量上传图片,截图,删除

    批量上传是指用户可以一次性选择多张图片进行上传,而不是一张一张地单独操作。这通常通过HTML5的File API实现,允许用户选择多个文件,然后通过Ajax异步上传到服务器。在Java后端,可以使用Spring MVC或Struts2等...

    ASP.net批处理实现无刷新ajax和jquery.form的图片批量上传例子

    这个功能允许用户在不刷新整个页面的情况下,上传多张图片,提升用户体验。 批处理在ASP.NET中指的是处理多个请求或操作作为单个单元的能力,这在处理大量数据或执行复杂操作时特别有用,如批量上传文件。在图片...

    Django框架,基于深度学习实现苹果叶子检测系统

    5. 结果展示:检测结果会在前端以用户友好的方式呈现,可能是以列表、图表或其他可视化形式显示,告知用户每张图片或每个视频帧的病害类型和概率。 6. 操作手册:附赠的操作手册应该详细介绍了如何使用这个系统,...

    唯美相册系统

    5. 分享与下载:用户可以生成分享链接,将相册或单张图片分享给他人,也可能提供图片下载功能。 6. 搜索与过滤:根据关键词、时间、标签等条件搜索图片。 7. 评论与点赞:社交互动功能,增加用户参与度和社区氛围。 ...

    仿新浪微博多图选择功能源码.zip

    这个功能在许多社交媒体应用中都非常常见,让用户能够方便地从手机相册中选取多张图片进行上传或分享。下面将详细介绍这个项目及其相关知识点。 1. **安卓开发基础**: - **Activity**:作为安卓应用的基本单元,...

    jsp+Mysql相册管理系统

    3. **图片下载**:用户可以选择下载相册中的单张或多张图片,系统会处理下载请求,确保文件传输的正确性。 4. **分类管理**:用户可以创建多个相册,将图片按照主题或时间进行分类,这涉及到数据库中的表设计和关联...

    net简单相册源码且有数据库

    1. `ViewImage.aspx`: 这个页面可能用于查看单张图片,用户可以通过它浏览相册中的图片。 2. `Default.aspx` 和 `main.aspx`: 这些通常是应用的主页或主界面,用户登录后可能会看到他们的相册列表或其他重要信息。 ...

    【Java web】讯友网络相册.zip

    在讯友网络相册项目中,JSP页面可能用于展示用户的照片列表,提供上传照片的表单,以及显示单张照片的详细信息。 3. MVC设计模式:Model-View-Controller(模型-视图-控制器)是Java Web开发中常见的架构模式。模型...

    jfinal 简单增删改查(有分页功能)

    它采用MVC(Model-View-Controller)架构模式,通过AOP(面向切面编程)和Ioc(依赖注入)来简化开发流程。JFinal的控制器(Controller)类继承自`com.jfinal.core.Controller`,模型(Model)通常对应数据库表,视图...

    java+mysql电子相册

    5. 分享功能:用户可以将相册或单张照片分享给其他用户或社交媒体。 6. 权限控制:设置照片或相册的可见性,如公开、仅自己可见、指定好友可见等。 7. 搜索与筛选:通过关键字、标签或时间线对照片进行搜索和筛选。 ...

    flickr-search:使用闪烁API学习改造

    全屏操作层意味着用户在查看图片时可以有更大的视野,而浏览功能则允许用户方便地查看搜索结果中的多张图片,可能包括上一张/下一张导航、缩放等交互设计。 对于Java开发者来说,此项目将涵盖以下知识点: 1. **...

    php基础知识树形图

    PHP(Hypertext Preprocessor)是一种广泛应用于网页服务器端的脚本语言,尤其在Web...同时,理解并掌握这些基础知识点,将为进阶的Web开发技能,如MVC架构、RESTful API设计、单元测试、安全实践等打下坚实的基础。

    C#编的电子相册-WEB版

    例如,`PhotosController`可能会有`Index`方法来展示所有照片,以及`Details`方法来显示单张照片的详细信息。 3. **Views** - 视图是用户看到的界面,由Razor语法编写。它们通常与控制器的方法关联,根据控制器传递...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    新版Android开发教程.rar

    � MVC 和 Web APP 架构 Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的...

Global site tag (gtag.js) - Google Analytics