asp.net mvc 上传到服务器 图片不显示,asp.net MVC上传图片完整方法

图片上传 自动创建文件夹并重命名(带缩略图)

后台:

[HttpPost]

public ActionResult WanSell_UploadPicture(ProductGalleryModels picturegm)

{

var users = Session["onlineUsers"] as List;

string usename = users[].CUserName.ToString(); //获取用户名

string randomName = DateTime.Now.ToFileTime().ToString(); //系统当前时间为图片名称

HttpPostedFileBase file = Request.Files["fileToUpload"];//获取客户端上传的图片

string pictureName = file.FileName; //上传图片的原名

string extensionName = System.IO.Path.GetExtension(pictureName);//获取扩展名

int randomcode = BaseRandom.GetRandom(, ); //产生随机数

string newName = string.IsNullOrEmpty(pictureName.Trim()) ? "" : usename + randomcode + randomName + System.IO.Path.GetExtension(pictureName); //重命名图片

if (picturegm.ImgDescription != null && picturegm.ImgDescription != "") //附加判断图片描述是否为空

{

if (extensionName.ToLower() == "jpg" || extensionName.ToLower() == "bmp" || extensionName.ToLower() == "gif") //判断图片格式

{

string savePath = HttpContext.Server.MapPath("~/Content/Uploads/img/" + usename); //原图图片保存位置

string smalfilepath = Server.MapPath("~/Content/Uploads/smallimg/" + usename); //缩略图图片保存位置

if (!System.IO.Directory.Exists(savePath))

{

//如果路径不存在创建新文件夹

System.IO.Directory.CreateDirectory(savePath);

}

if (!System.IO.Directory.Exists(smalfilepath))

{

System.IO.Directory.CreateDirectory(smalfilepath);

}

file.SaveAs(savePath + '/' + newName); //将上传的文件保存到指定的目录。

FileFolder.MakeThumbnail(savePath + '/' + newName, smalfilepath + '/' + newName, , , "Cut");

ViewData["messageBox"] = "上传成功";

return View("~/Views/RechargeMoney/RechargeSuccess.cshtml");

}

else

{

ModelState.AddModelError("", "图片格式应为jpg/bmp/gif");

}

}

else

{

ModelState.AddModelError("", "请填写图片描述");

}

return View("~/Views/IWantSell/WanSell_UploadPicture.cshtml");

}

#endregion

Controller Code

缩略图类:

#region 生成缩略图

/**/

///

/// 生成缩略图

///

/// 源图路径(物理路径)

/// 缩略图路径(物理路径)

/// 缩略图宽度

/// 缩略图高度

/// 生成缩略图的方式

public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)

{

System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);

int towidth = width;

int toheight = height;

int x = ;

int y = ;

int ow = originalImage.Width;

int oh = originalImage.Height;

switch (mode)

{

case "HW"://指定高宽缩放(可能变形)

break;

case "W"://指定宽,高按比例

toheight = originalImage.Height * width / originalImage.Width;

break;

case "H"://指定高,宽按比例

towidth = originalImage.Width * height / originalImage.Height;

break;

case "Cut"://指定高宽裁减(不变形)

if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)

{

oh = originalImage.Height;

ow = originalImage.Height * towidth / toheight;

y = ;

x = (originalImage.Width - ow) / ;

}

else

{

ow = originalImage.Width;

oh = originalImage.Width * height / towidth;

x = ;

y = (originalImage.Height - oh) / ;

}

break;

default:

break;

}

//新建一个bmp图片

System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);

//新建一个画板

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.Transparent);

//在指定位置并且按指定大小绘制原图片的指定部分

g.DrawImage(originalImage, new System.Drawing.Rectangle(, , towidth, toheight),

new System.Drawing.Rectangle(x, y, ow, oh),

System.Drawing.GraphicsUnit.Pixel);

try

{

//以jpg格式保存缩略图

bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);

}

catch (System.Exception e)

{

throw e;

}

finally

{

originalImage.Dispose();

bitmap.Dispose();

g.Dispose();

}

}

#endregion

缩略图 Code

Asp.Net MVC 上传图片到数据库

[读书笔记]Asp.Net MVC 上传图片到数据库(会的绕行)   之前上传图片的做法都是上传到服务器上的文件夹中,再将url保存到数据库.其实在MVC中将图片上传到数据库很便捷的事情,而且不用去存 ...

【读书笔记】Asp.Net MVC 上传图片到数据库(会的绕行)

之前上传图片的做法都是上传到服务器上的文件夹中,再将url保存到数据库.其实在MVC中将图片上传到数据库很便捷的事情,而且不用去存url了.而且这种方式支持ie6(ie6不支持jquery自动提交fo ...

T4 模板 : 一种提升ASP.NET MVC开发速度方法

最近由于需要在框架中提供一些自定义模板的功能,找到了一篇博客,可惜似乎是翻译工具直接翻的,读不通顺,就试着自己翻译下,我不会完全翻译原文的句子,可能会对原文进行小范围的我认为更合适的句子并添加些注释, ...

asp.net mvc Html.BeginForm()方法

Html.BeginForm()方法将会输出

标签,而且必须以using包起来,如此便可在using程序代码最后退出时,让asp.net mvc帮你补上标 ...

转:自定义ASP.NET MVC Html辅助方法

在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...

【MVC】自定义ASP.NET MVC Html辅助方法

在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...

[转载]自定义ASP.NET MVC Html辅助方法 TagBuilder

在ASP.NET MVC中,Html辅助方法给我们程序员带来很多方便,其重要性也就不言自明.有时候,我们不想重复地写一些HTML代码,或者MS没有提供我们想要的那个HTML标签的Html辅助方法,那么 ...

Asp.net mvc 中Action 方法的执行(二)

[toc] 前面介绍了 Action 执行过程中的几个基本的组件,这里介绍 Action 方法的参数绑定. 数据来源 为 Action 方法提供参数绑定的原始数据来源于当前的 Http 请求,可能包含 ...

Asp.net mvc 中Action 方法的执行(一)

[toc] 在 Aps.net mvc 应用中对请求的处理最终都是转换为对某个 Controller 中的某个 Action 方法的调用,因此,要对一个请求进行处理,第一步,需要根据请求解析出对应的 ...

随机推荐

第七篇——Mobile Apps,软件的曙光。

作业三: ShrinkWrap (在包装盒子里面的软件,软件在CD/DVD上): Web APP (基于网页的软件): Internal Software (企业或学校或某组织内部的软件): Game ...

Java实验1-文件IO

目标:掌握Java类的创建,Java  I/O操作,Java集合类的使用等 内容: 王老师非常喜欢读书,为了便于查阅,他每次买书回家后就在笔记本上登记每本书的详细信息(书名.作者.出版社.出版日期.价 ...

JVM调优-关于jvm的一些基本概念

1.数据类型 java体系中,数据类型可分为2类:基本类型和引用类型.基本类型保存变量原始值,即:他代表的值就是数值本身: 而引用类型的变量保存引用值."引用值"代表某个对象的引用 ...

(转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

UVA - 1153 Keep the Customer Satisfied(贪心)

UVA - 1153 Keep the Customer Satisfied Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: ...

.NET 并行(多核)编程系列之七 共享数据问题和解决概述

原文:.NET 并行(多核)编程系列之七 共享数据问题和解决概述 .NET 并行(多核)编程系列之七 共享数据问题和解决概述 前言:之前的文章介绍了了并行编程的一些基础的知识,从本篇开始,将会讲述并行 ...

CYJian的新春虐题赛

题解: t1: 算了一下发现乘法也是可以莫比乌斯反演的 然后就直接对原式莫比乌斯反演了 大概加法是$\mu {(i)}*f(i)$ 乘法就是$f(i)^{\mu {(i)}}$ 然后这个算法成功达到$ ...

java基础1之引用数据类型

5种引用类型(对象类型) 类 接口 数组 枚举 标注 类 类在JVM的内存空间的存储 (1). Heap 堆空间:分配对象 new Student() 存放引用数据类型的实例 (2). Stack 栈 ...

IDEA 不识别的MAVEN 项目应如何处理

有些人啊,上传到git的项目,根本不是项目而是一个文件夹,文件夹里边还有个文件夹那才是项目,IDEA 不会识别出它是项目来 这个时候,需要选择这个文件夹下的pom.xml 文件 右键 pom.xml然 ...

eclipse安装反编译decompiler方式一

(转发位置:https://www.cnblogs.com/zs-notes/p/8991503.html) eclipse安装JD-eclipse反编译插件 1.在eclipse的help中选择In ...

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值