示例一:

public JsonResult Upload(string parameter)
{
var file = Request.Files[];
try
{
//LogHelper.Info("文件长度:" + file.ContentLength.ToString() + "||最大照片:" + 1024 * 1024 * (Config.UploadFileSizeLimitInMB) + "||" + Config.UploadFileSizeLimitInMB);
if (file == null || file.ContentLength == )
{
throw new ValidationException("无上传文件");
}
if (file.ContentLength > * * Convert.ToInt32(uploadFileSize))
{
throw new ValidationException("上传文件过大");
}
#region checkfile
string fType = file.ContentType;//获取图像的类型 bool isimage = fType == "image/bmp" || fType == "image/gif" || fType == "image/pjpeg" || fType == "image/jpeg" || fType == "image/x-png" || fType == "image/png"; if (fType == "application/octet-stream")
{
BinaryReader reader = new BinaryReader(file.InputStream);
string fileClass;
byte buffer;
buffer = reader.ReadByte();
fileClass = buffer.ToString();
buffer = reader.ReadByte();
fileClass += buffer.ToString();
//reader.Close();
if (!(fileClass == "" || fileClass == "" || fileClass == "" || fileClass == ""))
//255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
throw new ValidationException("请上传图片格式的文件");
}
else
{
isimage = true;
} file.InputStream.Position = ;
} string fext = Path.GetExtension(file.FileName).ToLower(); //获取文件后缀 bool fextIsImage = fext == ".bmp" || fext == ".gif" || fext == ".png" || fext == ".jpeg" || fext == ".jpe" || fext == ".jpg"; if (!(isimage && fextIsImage))
{
throw new ValidationException("请上传图片格式的文件");
}
#endregion string uploadPath = string.Format("{0}\\{1}", uploadFilePath, SqlTimeHelper.GetTime().ToString("yyyyMMdd"));
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
var fileId = Guid.NewGuid(); System.Drawing.Image sImage = System.Drawing.Image.FromStream(file.InputStream);
int tw = sImage.Width - ;
int th = sImage.Height - ;
WatermarkHelper.AddWartermark(sImage); ImagesHelper.DrawImage(sImage, string.Format("{0}\\{1}{2}", uploadPath, fileId, fext), tw, ); ////原始图片的宽度和高度
//System.Drawing.Bitmap objPic, objNewPic; //图像对象
//objPic = new System.Drawing.Bitmap(sImage);
//objNewPic = new System.Drawing.Bitmap(objPic, tw, th); //使用指定的大小初始化objNewPic
//objNewPic.Save(string.Format("{0}\\{1}{2}", uploadPath, fileId, fext));
//objPic.Dispose();
//objNewPic.Dispose();
sImage.Dispose(); //释放资源 var rtnJson = Resource.SaveFile(file.FileName, fileId, fext); //下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失
return Json(new ApiSuccessResponse<FileUploadModel>(rtnJson));
}
catch (ValidationException ve)
{
return Json(new ApiInvalidParaExceptionResponse(ve.Message));
}
catch (Exception ue)
{
return Json(new ApiExceptionResponse<string>(ue));
}
}

示例二:

 public bool SaveStringToFile(string token, string fileName, string content)
{
try
{
string fext = Path.GetExtension(fileName).ToLower(); //获取文件后缀
bool fextIsImage = fext == ".bmp" || fext == ".gif" || fext == ".png" || fext == ".jpeg" || fext == ".jpe" || fext == ".jpg"; byte[] filecontent = System.Convert.FromBase64String(content);
string path = System.Configuration.ConfigurationSettings.AppSettings["UploadFilePath"];
BinaryReader reader = new BinaryReader(new MemoryStream(filecontent));
string fileClass;
byte buffer;
buffer = reader.ReadByte();
fileClass = buffer.ToString();
buffer = reader.ReadByte();
fileClass += buffer.ToString();
reader.Close();
bool isimage = false;
if (!(fileClass == "" || fileClass == "" || fileClass == "" || fileClass == ""))
//255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return false;
}
else
{
isimage = true;
} if (!(isimage && fextIsImage))
{
return false;
}
path = Path.Combine(path, fileName);
FileInfo info = new FileInfo(path);
if (!Directory.Exists(info.DirectoryName))
Directory.CreateDirectory(info.DirectoryName);
if (System.IO.File.Exists(path)) System.IO.File.Delete(path);
System.IO.FileStream outfile = System.IO.File.OpenWrite(path);
outfile.Write(filecontent, , filecontent.Length);
outfile.Close();
return true;
}
catch
{
return false;
}
}

C#上传图片(含有图片大小格式过滤以及改变像素安全存储)的更多相关文章

  1. C#.Net 上传图片,限制图片大小,检查类型完整版

    C#.Net 上传图片,限制图片大小,检查类型完整版 源代码: 处理图片类,如检查图片大小,按宽度比例缩小图片 public class CImageLibrary{   public enum Va ...

  2. jquery实现上传图片及图片大小验证、图片预览效果代码

    jquery实现上传图片及图片大小验证.图片预览效果代码 jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture() ...

  3. 关于PHP HTML <input type="file" name="img"/>上传图片,图片大小,宽高,后缀名。

    在我们的系统中,不免要上传图片,视频等文件,在上传中,需要做的一些判断,文件大小等方面. 注意: 在php.ini 中的post_max_size,upload_max_filesize默认为2M,在 ...

  4. 在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片

    在"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"一文中,使用JSAjaxFileUploader这款插件实现了单文 ...

  5. js 上传图片,用户自定义截取图片大小

    js 上传图片,用户自定义截取图片大小 js 组件

  6. php用jquery-ajax上传多张图片限制图片大小

    php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $siz ...

  7. SpringMVC 图片上传,检查图片大小

    使用SpringMVC+Spring 前端提交图片文件到Controller,检查上传图片大小是否符合要求 直接上代码了 1.校验图片大小 这里提供出验证的方法,用于在需要校验的地方调用 /** * ...

  8. 图片处理:html文本获取图片Url,判断图片大小,存数据库

    1.从html文本获取图片Url /** * html文本中取出url链接 */ public class Url { public static void main(String[] args) { ...

  9. markdown 插入图片太大?怎么设定图片大小?

    你一定在插入图片的时候,遇到图片太大,影响观感的问题. Markdown中,图片大小的设定方式有两种 第一种: ![](https://img2018.cnblogs.com/blog/1735896 ...

随机推荐

  1. 第二个spring冲刺第7天

    今天因为停电,所以没什么进展,延迟一天工作,今天当作休息

  2. 团队作业(五)——旅游行业的手机App

    首先是作业要求: 在PM 带领下, 每个团队深入分析下面行业的App, 找到行业的Top 5 (从下面的三个备选中,任选一个行业即可) 英语学习/词典App 笔记App 旅游行业的手机App 我们选择 ...

  3. Fast R-CNN论文阅读笔记

    论文地址:Fast R-CNN R-CNN的缺陷 (1)训练是一个多级的流水线.R-CNN首先在候选目标上微调一个卷积神经网络,使用log loss.然后使用SVMs充当目标分类器,以取代softma ...

  4. Beta冲刺——day2

    Beta冲刺--day2 作业链接 Beta冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602134 王龙 ...

  5. 第十一周(11.24-12.01)----ptim测试程序运行速度

    我在dos下用ptime指令对分数运算(http://www.cnblogs.com/YangXiaomoo/p/6095583.html)的运行时间进行了测试.测试结果一般都在0.212-0.217 ...

  6. bash基本功能 -命令的别名和快捷键

    命令的别名 == 人的小名 如何查看和设定别名 alias 查看系统中的所有别名 ls --color=auto alias ll = 'ls - l --color=auto' touch abc ...

  7. Windows 下安装redis 并且设置开机自动启动的过程.

    1. 下载redis 的 windows下的安装文件 https://github.com/MicrosoftArchive/redis/releasesmsi文件下载地址https://github ...

  8. Hibernate性能优化之EHCache缓存

    像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...

  9. hdu 6301 Distinct Values (2018 Multi-University Training Contest 1 1004)

    Distinct Values Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  10. 生成器 yield

    由于生成器的其中一种创建方式与列表推导式很相似,这里先说一下列表推导式. 列表推导式 列表推导式又叫列表生成式,官方叫做 list comprehension.顾名思义,这个是用来生成列表的. 用法: ...