设为首页 加入收藏

TOP

ASP.NET MVC HttpPostedFileBase文件上传(二)
2017-10-13 10:41:02 】 浏览:6725
Tags:ASP.NET MVC HttpPostedFileBase 文件 上传
unt = 0; 46 while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0) 47 { 48 targetStream.Write(buffer, 0, count); 49 } 50 } 51 //上传文件为图片时,需创建缩略图 52 if (fileMessage.IsImage) 53 { 54 var uploadThumbFolder = Path.Combine(uploadFolder, "Thumb"); 55 56 if (!Directory.Exists(uploadThumbFolder)) 57 { 58 Directory.CreateDirectory(uploadThumbFolder); 59 } 60 using (FileStream targetStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None)) 61 { 62 System.Drawing.Image image = System.Drawing.Image.FromStream(targetStream); 63 int width = image.Width; 64 int height = image.Height; 65 int thumbWidth = 0; 66 int thumbHeight = 0; 67 switch (fileMessage.Mode) 68 { 69 case "WH": //指定高宽缩放(可能变形) 70 thumbWidth = fileMessage.ThumbWidth.HasValue ? fileMessage.ThumbWidth.Value : 200; 71 thumbHeight = fileMessage.ThumbHeight.HasValue ? fileMessage.ThumbHeight.Value : 200; 72 break; 73 case "W": //指定宽,高按比例 74 thumbWidth = fileMessage.ThumbWidth.HasValue ? fileMessage.ThumbWidth.Value : 200; 75 thumbHeight = height * thumbWidth / width; 76 break; 77 case "H": //指定高,宽按比例 78 thumbHeight = fileMessage.ThumbHeight.HasValue ? fileMessage.ThumbHeight.Value : 200; 79 thumbWidth = width * thumbHeight / height; 80 break; 81 default: 82 thumbWidth = fileMessage.ThumbWidth.HasValue ? fileMessage.ThumbWidth.Value : 200; 83 thumbHeight = height * thumbWidth / width; 84 break; 85 } 86 string thumbFilePath = Path.Combine(uploadThumbFolder, saveFileName); 87 CreateThumbnail(thumbFilePath, targetStream, thumbWidth, thumbHeight); 88 upFileResult.ThumbPath = string.Format(@"{0}/{1}/Thumb", ParmsConfig.UpFileIPAddressUrl, now); 89 } 90 } 91 } 92 93 return upFileResult; 94 } 95 catch (Exception ex) 96 { 97 return new UpFileResultMessage() { IsSuccess = false, Message = ex.Message }; 98 } 99 100 } 101 102 /// <summary> 103 /// 创建指定图片文件流的缩略图 104 /// </summary> 105 /// <param name="thumbFilePath">缩略图文件保存路径</param> 106 /// <param name="fileStream">原始文件流</param> 107 /// <param name="width">缩略图宽</param> 108 /// <param name="height">缩略图高</param> 109 private void CreateThumbnail(string thumbFilePath, Stream fileStream, int width, int height) 110 { 111 using (Image image = Image.FromStream(fileStream)) 112 { 113 using (Image thumbnail = image.GetThumbnailImage(width, height, null, IntPtr.Zero)) 114 { 115 thumbnail.Save(thumbFilePath); 116 } 117 } 118 119 } 120 121 } View Code

调用方式

1  var upFileMsg = new UpFileMessage()
2                     {
3                         IsImage = true,
4                         OriginalFileName = platformImg[i].FileName,
5                         FileStream = platformImg[i].InputStream,
6                         ThumbWidth = ThumbWidth,
7                         Mode = "W"
8                     };
9                  var   upFileResultMsg = new FileUtil().UpLoadFile(upFileMsg);
View Code

 代码地址:文件上传类库包.zip

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇sql创建表变量,转百分数 下一篇swaggerui在asp.net web api core..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目