当前位置:  编程技术>.net/c#/asp.net

c#多图片上传并生成缩略图的代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  上传多张图片,生成缩略图。 1,前台代码:   代码示例: 多图片上传并生成缩略图_www. li { list-style: none; padding-top: 10px; } function ValidImage(id, msg) { $(id).parent().append("" + msg + ""); return false; } ...

上传多张图片,生成缩略图。

1,前台代码:
 

代码示例:





多图片上传并生成缩略图_www.

li
{
list-style: none;
padding-top: 10px;
}



function ValidImage(id, msg) {
$(id).parent().append("" + msg + "");
return false;
}




























 

代码说明:就是几个控件和一个ValidImage方法。

2,后台代码:
 

代码示例:

protected void btnPostFile_ServerClick(object sender, EventArgs e)
{
string filePath = Server.MapPath("/uploadImg");
const int size = 5242880;
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
if (Request.Files.Count > 0)
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFile postFile = Request.Files[i];
string uploadFileID = string.Format("#upload{0}", i + 1); //当前的上传控件ID,因为jquery要调用就加了#
string msg = null; //提示信息
if (postFile.FileName.Trim().Length size)
{
msg = "文件太大";
Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
continue;
}
string savePath = Path.Combine(filePath, postFile.FileName); //图片的保存地址
if (!File.Exists(savePath))
{
postFile.SaveAs(Path.Combine(filePath, postFile.FileName)); //如果文件不存在就保存
}
else
{
msg = "文件" + postFile.FileName + "已经存在";
Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
continue;
}
if (IsImg(savePath)) //通过IsImg方法验证文件是否是图片,或者格式是否正确
{
SmallImg(postFile.InputStream, postFile.FileName);
}
else
{
msg = "只能上传JGP、PNG类型的图片,请检查文件格式是否正确";
Page.ClientScript.RegisterStartupScript(GetType(), "", "ValidImage(" + uploadFileID + "," + msg + ")", true);//将提示信息发送到客户端
File.Delete(savePath); //如果不是图片就删除
}
}
}
}

#region 验证上传文件的格式
///
/// 验证上传文件是否是图片
///
/// 文件的保存路径
///
private bool IsImg(string FilePath)
{
using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
{
bool result = false;
BinaryReader br = new BinaryReader(fs, System.Text.Encoding.UTF8);
string strImg = "";
byte buffer;
try
{
buffer = br.ReadByte();
strImg = buffer.ToString();
buffer = br.ReadByte();
strImg += buffer.ToString();
}
catch
{
fs.Close();
br.Close();

}
if (strImg == "255216" || strImg == "13780")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
result = true;
}
return result;
}
}
#endregion

#region 将图片生成缩略图
///
/// 生成缩略图
///
private void SmallImg(Stream oStream, string FileName)
{
using (System.Drawing.Image img = System.Drawing.Image.FromStream(oStream))
{
int newWidth = 100;
int newHeight = 80;
int oldWidth = img.Width;
int oldHeight = img.Height;
if (oldWidth > oldHeight)
{
newHeight = (int)Math.Floor((double)oldHeight * (double)newWidth / (double)oldWidth);
}
else
{
newWidth = (int)Math.Floor((double)oldWidth * (double)newHeight / (double)oldHeight);
}
using (Bitmap bmp = new Bitmap(newWidth, newHeight))
{
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Transparent);
g.InterpolationMode = InterpolationMode.High;
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawImage(img, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, oldWidth, oldHeight), GraphicsUnit.Pixel);
string newFileName = Path.GetFileNameWithoutExtension(FileName) + "_small" + Path.GetExtension(FileName); //缩略图名称
string filePath = Server.MapPath("/uploadImg/") + newFileName;
bmp.Save(filePath);
}
}

}
}
#endregion


    
 
 

您可能感兴趣的文章:

  • c#正则过滤图片标签 asp.net正则过滤的例子
  • C# 图片与二进制转换的简单实例
  • C#实现动态显示及动态移除图片方法
  • C#给picturebox控件加图片选中状态的2个方法
  • 基于C# winform实现图片上传功能的方法
  • C#实现图片放大功能的按照像素放大图像方法
  • C#实现把彩色图片灰度化代码分享
  • c#读取图像保存到数据库(数据库保存图片)实例
  • C#判断上传文件是否是图片以防止木马上传的方法
  • C#实现将网页保存成图片的网页拍照功能
  • c#实现图片与字节流相互转换的代码
  • C# 将字节流转换为图片的实例方法
  • c#图片处理之图片裁剪成不规则图形
  • c# Base64编码和图片的互相转换代码
  • C#保存图片到数据库并读取显示图片的方法
  • c#读取图像保存到数据库中(数据库保存图片)
  • C# 将透明图片的非透明区域转换成Region的实例代码
  • C#操作图片读取和存储SQLserver实现代码
  • C# 判断两张图片是否一致的快速方法
  • C#中按指定质量保存图片的实例代码
  • PHP 图片缩略图库 PHPThumb
  • Jquery 动态实现图片缩略的代码
  • php获取exif图片缩略图的例子
  • PHP图片等比例缩放生成缩略图函数分享
  • php gd库实现服务端图片裁剪与缩略图 iis7站长之家
  • 深入分析WPF客户端读取高清图片卡以及缩略图的解决方法详解
  • 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
  • php gd库实现服务端图片裁剪与缩略图
  • 鼠标滑过缩略图时放大图片(纯Css)
  • php图片裁剪与缩略图示例
  • Android获取SD卡上图片和视频缩略图的小例子
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求jsp中动态生成图片的相关资料、生成svg格式和pdf格式的资料,不够再加分
  • 星球图片生成软件 xplanet
  • Java的图片展示页面生成工具 Nail6
  • 如何根据数字或字幕动态生成图片?
  • 为什么动态生成的图片,JSP不能动态的获得
  • SERVLET生成的网页中怎样加一些图片
  • GTK如何生成GIF图片
  • SERVLET生成的网页中想加一些图片,怎么办呢
  • 怎样把数据结果生成一个图片!??
  • CSS图片拼合生成器只需上传zip包即可
  • php生成透明背景图片实例
  • android通过bitmap生成新图片关键性代码
  • php背景图片怎么生成
  • 从零学python系列之教你如何根据图片生成字符画
  • 在服务器端生成图片再给客户端的问题
  • asp.net生成图片验证码的例子
  • PHP生成图片验证码、点击切换实例
  • 使用GD库生成的图片在windows中不能正常显示
  • asp.net创建位图生成验证图片类(验证码类)
  • php验证码 php非预置图片生成验证码
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • JS点击图片改变图片图径并用正则表达式取图片名的代码
  • Python3通过request.urlopen实现Web网页图片下载
  • Android 图片浏览器 雪梦图片浏览器
  • android中知道图片name时获取图片的简单方法
  • css为图片设置背景图片
  • android图像绘制(六)获取本地图片或拍照图片等图片资源
  • 有没有可以从已知图片里过滤出,不规则图片的滤镜??
  • 怎么让客户端从服务器下载图片后,看不到图片的最后修改时间
  • 如何将一个彩色bmp图片转换成黑白图片,急用
  • 查询图片,图片文件存放在数据库中好,还是存放路径好,是否有更好的解决办法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3