private void Upload_Click(object sender, System.EventArgs e)
{
if(myFile.PostedFile !=null)
{
// 检查文件扩展名字
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile postedFile = files[0];
string fileName,fileExtension,file_id,file_path;
//取出精确到毫秒的时间做文件的名称
int year = System.DateTime.Now.Year;
int month = System.DateTime.Now.Month;
int day = System.DateTime.Now.Day;
int hour = System.DateTime.Now.Hour;
int minute = System.DateTime.Now.Minute;
int second = System.DateTime.Now.Second;
int millisecond = System.DateTime.Now.Millisecond;
string my_file_id = year.ToString() + month.ToString() + day.ToString() + hour.ToString() + minute.ToString() + second.ToString() + millisecond.ToString();
//获得文件类型
fileName = System.IO.Path.GetFileName(postedFile.FileName);
fileExtension = System.IO.Path.GetExtension(fileName);
//重新命名文件,防止重复
file_id = "topnews_"+my_file_id+fileExtension;
file_path = "images/article_images/"+file_id;
//文件上传到服务器的根目录
postedFile.SaveAs(Request.PhysicalApplicationPath+@"images\article_images\"+ file_id);
//处理图片大小
int width,height,level;
width=120;
height=90;
level=100;//从1-100
GetThumbnailImage(width,height,level,file_id);
}
}
//生成缩略图函数
public void GetThumbnailImage(int width,int height,int level,string file_id)
{
string newfile= Request.PhysicalApplicationPath+"images/article_images/"+"top_"+ file_id;
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"images/article_images/"+ file_id);
System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
Bitmap output=new Bitmap(thumbnailImage);
//处理JPG质量的函数
ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici=null;
foreach(ImageCodecInfo codec in codecs){if(codec.MimeType=="image/jpeg")ici=codec;}
EncoderParameters ep=new EncoderParameters();
ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)level);
output.Save(newfile,ici,ep);
//释放所有使用对象
ep.Dispose();
output.Dispose();
oldimage.Dispose();
thumbnailImage.Dispose();
//删除源图片
string file_path = "images/article_images/"+"top_"+file_id;
usageIO.DeletePath(Request.PhysicalApplicationPath+"images/article_images/"+ file_id);
Response.Write("<script >parent.Form1.A_Simg.value ='"+file_path+"';location.replace('Upload_Img.aspx')</script>");
}
bool ThumbnailCallback()
{
return false;
}
分享到:
相关推荐
java代码保存宽高不变压缩图片(失真不大),按照文件大小,进行压缩质量控制
或是如何在上传的图片下加一个半透明的LOGO水印? OK,本文根据自己的项目代码描述以上问题的解决方案,全部基于.Net Framework类库完成,代码中包含了C#图片处理的一些基础知识,与大家分享,个人能力有限,不足之...
5、图片上传可设置不压缩,保持图片原像素和清晰度,文件大小不变; 6、通过PC客户端上传的单个文件的大小随着用户等级提升不断增大(例,几天使用后升到LV5级,用客户端上传的单个文件达到400MB、外链分享文件的...
单击<定位文件夹>按钮,可以定位到该学生所在班级的相片文件夹,你可以用压缩软件进该文件夹进行压缩上传(注意:压缩成ZIP格式)或者进行其他操作。 6、相片的保存路径: 相片默认保存在”D:\学籍管理系统相片\”...
25.上传的图片如果太大,可自动生成缩略图. 26.上传的图片如果非GIF,jpg,png等浏览器直接支持显示的格式,自动生成一幅缩略显示,并作链接 27.上传方式可以选择是否采用DotNet上传功能(支持上传最大4M的文件) 28.可...
系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。...
系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。...
可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用代码 可以清楚页面中的脚本注释,HTML注释和空白,从而页面更小,降低流量,提高...
可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用代码 可以清楚页面中的脚本注释,HTML注释和空白,从而页面更小,降低流量,提高...
优越感:编辑器全站通用单文件控制上传系统,编辑器支持各种类型的图片、动画、音频、视频等格式的上传,完善的订单系统,完整无限制、无误的后台操作平台,支持一级分类打开,横幅、广告图片后台直接覆盖式上传更新...
《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...
《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...
《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...
《google android sdk开发范例大全(第3版)》内容由android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合android的初学者和android的进阶程序开发者阅读参考。 目录 《google android sdk开发范例...
WeChatVideoRecorder Android-VideoRecorder 仿Android微信录制小视频功能 ...2.视频压缩,怎么在保证一定清晰度的前提下,尽可能的压缩生成文件的大小 3.资源的初始化以及释放的合理位置 #About Devloper Neo ()