首页 > 开发 > 综合 > 正文

C#图片处理

2024-07-21 02:26:03
字体:
来源:转载
供稿:网友
<%@   page   debug   ="true"   language="c#"   %>  
  <%@   import   namespace="system.io"   %>  
  <%@   import   namespace="system.data"   %>  
  <%@   import   namespace="system.web"   %>  
  <%@   import   namespace="system.data.sqlclient"   %>  
  <html>  
  <!--此程序由长沙铁路公安处彭永爽开发,版权所有,不得复制-->  
  <head>  
  <script   language="c#"   runat="server">    
   
  //页面载入事件  
  public   void   page_load(object   sender,system.eventargs   e)  
  {    
   
  //定义图片标志  
  string   pys_pic;  
  pys_pic="";  
   
  //定义文件夹名称  
  string   pys_dir;  
  pys_dir=datetime.now.year.tostring();  
   
  //定义文件名前部分,以免上传文件因文件名重复而覆盖  
  string   pys_filename;    
   
  //如果客户端已经上传文件,则保存    
  if   (!ispostback)  
  {  
  liuxi.text="等待上传";  
  }  
  else  
  {  
  //检查是否有文章id,如果没有,则处理  
  if   (request["pysid"]==null   |   request["pysid"]=="")  
  {  
  strstatus.text="<font   color=red>发生错误,您没有从正当途径进入该页面,请关闭本页面!</font>";  
  }  
  else  
  {  
  //遍历file表单元素  
  system.web.httpfilecollection   files=system.web.httpcontext.current.request.files;  
  //状态信息  
  system.text.stringbuilder   strmsg=new   system.text.stringbuilder("<font   color=red>上传的文件信息分别为:</font><hr   size=1   color=blue>");  
  int   filecount;  
  int   filecount=files.count;    
  //储存上传图片的客户端地址,以便检测上传图片的大小  
  string   imgpath;    
  //检查上传文件是否图片  
  string   pys_type;  
  //保存图片生成缩略图的宽度  
  int   pys_width;    
  try  
  {  
  //数据库连接字符串  
  string   connectionstring="server=(local);database=csc;uid=forcool;pwd=";  
   
  string   sql="select   *   from   upfile";    
   
   
  //创建sqlconnection对象  
  sqlconnection   thisconnection=new   sqlconnection(connectionstring);  
  //创建dataadaper对象并初始化  
  sqldataadapter   adapter=new   sqldataadapter(sql,thisconnection);  
   
   
   
   
  //创建dataset对象  
  dataset   data=new   dataset();  
   
   
  //创建sqlcommandbuilder对象,并和sqldataadapter关联  
  sqlcommandbuilder   builder=new   sqlcommandbuilder(adapter);  
   
   
  adapter.fill(data,"upfile");  
   
   
  for(filecount=0;filecount<files.count;filecount++)  
  {  
  //定义访问客户端上传文件的个数  
  system.web.httppostedfile   postedfile=files[filecount];  
  string   filename,fileextension;  
  //取得上传的文件名  
  filename=system.io.path.getfilename(postedfile.filename);  
  if   (filename!=string.empty)  
  {  
  //取得文件扩展名  
  fileextension=system.io.path.getextension(filename);  
  //上传的文件信息  
  strmsg.append("<font   color=red><b>"+(filecount+1)+".</b></font>");  
  strmsg.append("上传的文件类型:"+postedfile.contenttype.tostring()+"<br>");  
  strmsg.append("客户端文件地址:"+postedfile.filename+"<br>");  
  strmsg.append("上传文件的文件名:"+filename+"<br>");  
  strmsg.append("上传文件的扩展名:"+fileextension+"<br>");  
  strmsg.append("上传文件的大小:"+postedfile.contentlength+"<br>");  
   
   
  //按当前时间(精确到毫秒)给文件命名,不取中文名,避免编码错误而无法下载或显示  
  pys_filename=datetime.now.year.tostring()+datetime.now.month.tostring()+datetime.now.day.tostring()+datetime.now.hour.tostring()+datetime.now.minute.tostring()+datetime.now.second.tostring()+datetime.now.millisecond.tostring();  
   
  //创建随机数对象  
  random   rnd=new   random();  
  //调用next方法产生随机数  
  pys_filename+=rnd.next(1,100000).tostring();  
   
  pys_filename+="-";  
  pys_filename+=filecount;  
  pys_filename=request.querystring["pysid"]+"-"+pys_filename;  
   
  pys_type=fileextension;  
  pys_type=pys_type.tolower();  
   
  //给缩略图宽度赋初值  
  pys_width=0;  
  //如果是图片则检查大小,如果图片过大则生成缩略图  
  if   (pys_type==".jpg"   |   pys_type==".gif"   |   pys_type==".bmp"   |   pys_type==".png")  
  {  
  pys_pic="是";  
  //取得上传图片的路径  
  imgpath=postedfile.filename;  
  //针对选择的图片建立image对象  
  system.drawing.image   image=system.drawing.image.fromfile(imgpath);  
  //使用image对象的height   and   width属性取得图片的高度和宽度  
  strmsg.append("上传图片的高度:"+image.height.tostring()+"<br>");  
  strmsg.append("上传图片的宽度:"+image.width.tostring()+"<br>");  
  //如果上传的图片超过了100kb  
   
  if   (postedfile.contentlength>100000   ||   image.width>400)    
  {  
  //生成缩略图  
  system.drawing.image.getthumbnailimageabort   callb=null;  
  pys_width=(image.height)*200/(image.width);  
  system.drawing.image   newimage=image.getthumbnailimage(200,pys_width,callb,new   system.intptr());  
  //保存缩略图  
  newimage.save(server.mappath(""+pys_dir+"//small-")+pys_filename+fileextension);  
  //释放newimage对象占用的资源    
   
  //对图形压缩处理  
  pys_width=(image.height)*400/(image.width);    
  newimage=image.getthumbnailimage(400,pys_width,callb,new   system.intptr());  
  //保存压缩图  
  newimage.save(server.mappath(""+pys_dir+"//")+pys_filename+fileextension);  
  //释放newimage对象占用的资源  
  newimage.dispose();  
  strmsg.append("上传的图片大小超过了100kb,为了不影响拨号上网单位的浏览速度,已对该图生成缩略图。<br>");  
  }  
  //释放image占用的资源  
  image.dispose();  
  }  
   
   
  strmsg.append("<hr   size=1   color=blue>");  
   
   
  //在dataset中添加上传的文件信息  
  datarow   newrow=data.tables["upfile"].newrow();  
  newrow["pysid"]=request["pysid"];  
  newrow["文件名称"]=filename;  
  newrow["文件类型"]=fileextension;  
  newrow["文件大小"]=postedfile.contentlength;    
  newrow["文件位置"]=pys_dir+"/"+pys_filename+fileextension;    
  if   (pys_width>0)  
  {  
  newrow["缩略图位置"]=pys_dir+"/small-"+pys_filename+fileextension;    
  }  
  data.tables["upfile"].rows.add(newrow); 


收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表