Mvc检查图片格式后上传

/// <summary>
        /// 检查是否文件是否图片并保存
        /// </summary>
        /// <param name="file">文件</param>
        /// <param name="savePath">保存文件的目录(例:/Img/Mark/)</param>
        /// <param name="newFileName">重命名后文件的名称</param>
        /// <returns>是否成功</returns>
        private bool SaveImage(HttpPostedFileBase file, string savePath, out string newFileName)
        {
            bool isSuc = false;
            newFileName = string.Empty;

            int contentLen = file.ContentLength;
            byte[] fileByte = new byte[2];
            using (Stream stream = file.InputStream)
            {
                stream.Read(fileByte, 0, 2);
                string fileFlag = string.Empty;
                if (fileByte != null && fileByte.Length > 0)
                {
                    fileFlag = fileByte[0].ToString() + fileByte[1].ToString();
                    Dictionary<string, string> dicImageByte = new Dictionary<string, string> {
                    { "255216","jpg"},{ "7173","gif"},{ "6677","bmp"},{ "13780","png"} };

                    string imageType = string.Empty;
                    bool isImage = dicImageByte.TryGetValue(fileFlag, out imageType);
                    if (isImage)
                    {
                        string fileName = Guid.NewGuid().ToString() + "." + imageType;
                        file.SaveAs(Path.Combine(Server.MapPath(savePath), fileName));
                        newFileName = savePath + fileName;
                        isSuc = true;
                    }
                }
                stream.Close();
                return isSuc;
            }
        }
时间: 2024-08-03 19:23:31

Mvc检查图片格式后上传的相关文章

前端获取图片压缩后上传给后台

 此前有同事跟我聊过关于移动端用canvas压缩图片后再上传的功能,最近有了点空闲时间,所以就实践了一下.demo效果链接在文章底部贴出. 在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上传显然不是一个好办法. 目前来说,HTML5的各种新API都在移动端的webkit上得到了较好的 实现.根据查看caniuse,本demo里使用到的FileRe

绕过图片格式限制上传木马获取WebShell

思路: 图片上传功能中,前端页面上传的是.png格式的图片文件,但是抓包Request中修改图片后缀为.php 可以绕过对上传文件格式的限制,文件的上传路径可以在上传后的页面或查看上传成功后的response中有显示, 记录下来后用菜刀连接即可. (1)网站要求上传png格式的文件 (2)保存-抓包,将文件后缀.png删除,剩余.php文件继续提交,提示成功. Content-Disposition: form-data; name="fun_menu_icon" test123tro

html5图片缩放后上传blob

环境:前端用的jquery    bootstrap, 后端用的springboot 前端代码:(这些代码是单独从原项目中摘取出来放在HBuilder中运行的,所以如果放在真实的项目环境的话,修改一下静态文件的路径即可) github地址:https://github.com/earnop/uploadimg 原文地址:https://www.cnblogs.com/know-more/p/11497228.html

div中粘贴图片并上传服务器 div中拖拽图片文件并上传服务器

应用简介:此文主要是描述如何在前端div中直接ctrl+v 粘贴图片,并上传到服务器,包括拖拽图片文件到div中 应用场景描述:用QQ或者其它切图软件截图,在指定的div中ctrl+v 粘贴并显示,点击上传按钮,图片上传到服务器.类似实现了此功能的网站有 知乎,强力建议博客园实现此功能,                     写博客时插入图片方便的多. 适用环境:本代码目前适用谷歌浏览器,其它浏览器需要稍微改良一下即可,问题不大. 开发环境:vs2015 mvc 不说废话了,开始吧: 1:首先

UEditor+七牛,实现图片直连上传

最近做的项目,涉及到使用富文本编辑器,我选择了百度的UEditor.同时,我们的图片放在七牛云存储上.关于这两者间的集成,我写下一些个人的经验,与大家分享. 图片上传方案 目前来说,Web端基于七牛等云存储的图片上传方式分为以下两种: 1. 上传图片至服务端,再将数据转发至七牛. 通过服务端接受用户上传的内容,同时可以对内容进行有效性审核,拒绝不合规范的内容,然后从服务端将内容上传至七牛. 这种方法可以有效控制并记录用户提交的内容,但同时也增加了服务器的运行压力. 2. 直接上传图片至七牛,然后

iOS开发——项目实战总结&amp;类微信朋友圈发动态功能初步-图片与视频上传

类微信朋友圈发动态功能初步-图片与视频上传 最近在做一个新的项目,涉及到了关于图片和视频上传和显示的功能,研究了一段时间,总结一下. 使用AFNetworking上传图片(可一次上传多张图片,包含不同类型png, jpeg)和视频 1 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 2 3 AFHTTPRequestOperation *operation = [manager P

CANVAS运用-对图片的压缩上传(仅针对移动浏览器)

最近在移动端设计头像上传功能时,原本是以<input type="file">直接通过formData上传,然而实际使用情况是:对于过大的图片(高像素手机所拍摄的照片等)上传时间过长会导致上传失败,而每次都上传原始大小的图片(后台处理压缩)十分影响用户体验,所以研究了一下通过canvas压缩图片并上传的方法,以下是整理的一些思路和心得: 一.<input type="file">获取本地图片,并将图片绘制到画布中.此处的难点在于:由于浏览器的

上传图片图像进行压缩后上传

图片压缩: NSData *imageData = UIImageJPEGRepresentation(self.uploadImage , 0.55); NSString *file_name = [TimeUtil getDateStringWithFormat:@"yyyy-MM-dd"]; NSString *upload_name =[NSString stringWithFormat:@"%@.jpg",file_name ]; [request set

HTML5实现图片文件异步上传

利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构.下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段.我这边的效果预览: 1.文件未选择 2.文件已选择 HTML代码部分: 思路:下面代码中我利用css的z-index属性将input="file"标签隐藏在了id=btnSelect元素下面,通过触发a标签的点击后,弹出文件选择框.下面的masklayer用于点击确认按钮后的弹出层,避免用户重复点击确认按钮. <div id