c#上传图片

upload.aspx

<%@ Page CodeBehind="upload.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="playershow.upload" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
    
<HEAD>
        
<title>上传</title>
        
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        
    
</HEAD>
    
<body>
<form runat="server">
                                                
<table width="415" border="0" align="center" cellpadding="1" cellspacing="1">
                                                                                        
<tr>
                                                                            
<td height="20" rowspan="2" align="left">
                                                                                截图上传 :
</td>
                                                                            
<td height="25">&nbsp;<INPUT id="MyFile" type="file" size="34" name="MyFile" runat="server"></td>
                                                                        
</tr>
                                                                        
<tr>
                                                                            
<td><span class="style5"> [尺寸必须为宽400×300像素;图片大小300K以内] </span></td>
                                                                        
</tr>
                                                                        
                    
                                                                        
<tr>
                                                                            
<td height="20" colspan="2" align="left" valign="top"><div align="center">
                                                                                    
<asp:ImageButton id="ImageButton1" runat="server" ImageUrl="images/frame-08.gif"></asp:ImageButton></div>
                                                                            
</td>
                                                                        
</tr>
                                                                    
</table>
                                                
</form>
        
</TBODY></TABLE>
    
</body>
</HTML>

 

upload.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Web.UI.HtmlControls;
using System.Data;

using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Web;
using System.Configuration;
using System.IO;
using System.Data.SqlClient;

namespace playershow
{
    
/// <summary>
    
/// screenshots_upload 的摘要说明。
    
/// </summary>

    public class screenshots_upload : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.RadioButtonList DbArea;
        
protected System.Web.UI.HtmlControls.HtmlInputFile MyFile;
        
protected System.Web.UI.WebControls.TextBox PhotoRemark;
        
protected System.Web.UI.WebControls.ImageButton ImageButton1;
        
protected System.Web.UI.WebControls.RadioButtonList PicXiaoType;
        
protected System.Web.UI.WebControls.TextBox PhotoTitle;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
        }


        
Web 窗体设计器生成的代码

        
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        
{            
            

            
string FileName;
            FileName
="";
            
if (!upimgtoserver(MyFile,ref FileName))
            
{
                
string jsClient = "<script language=javascript>alert('"+FileName+"');</script>";
                
this.RegisterStartupScript("s1",jsClient);
                
return;
            }

            
else
            
{
                
                
return;
            
            }
        
        }

        
        
/// <summary>
        
/// 文件上传函数
        
/// </summary>
        
/// <param name="file">文件控件的名称</param>

        private bool upimgtoserver(HtmlInputFile file ,ref string FileName)
        
{
            
string FilePath =file.PostedFile.FileName;                 
            
if(FilePath == "" || FilePath == null)
            
{
                FileName
="请选择一个文件。";
                
return false;                    
            }

            
if (!filetype(file.PostedFile.ContentType))            
            
{
                FileName
="您上传的文件类型无效,支持的上传文件类型:jpg,jpeg,gif,bmp,png,tiff";    
                
return false;            
            }

            
int intLen=file.PostedFile.ContentLength;
            
if(intLen>1240*300)
            
{
                FileName
="您上传的文件超过300K,请您重新上传";
                
return false;
            }

                    
         
            
//保存到服务器上的绝对路径和文件名
            try
            
{
                addml();
                FileName
=fliename();
                Stream ImageStream 
= file.PostedFile.InputStream;

                Image sImage 
= Image.FromStream(ImageStream); // 从 Http 输入流创建 image


                
int kkkk=0;
                
string syt="UPimg/logo2.png";
                
if(sImage.Height/sImage.Width<=0.75)
                
{
                    
if (sImage.Height>=240)
                    
{
                        kkkk
=1;
                    }
                    
                }

                
else
                
{
                    
if(sImage.Width>=320)
                    
{
                        kkkk
=1;
                    }

                }
                
                
                
if (kkkk==1)
                
{
                    syt
="UPimg/logo.png";
                }


                
string wImageFile = Server.MapPath(syt); // 要加的水印图
                Image wImage = Image.FromFile(wImageFile);
                
// 绘图
                Bitmap bitmap = new Bitmap(sImage.Width, sImage.Height, PixelFormat.Format32bppArgb);
                Graphics g 
= Graphics.FromImage(bitmap);
                g.Clear(Color.Transparent);
                g.DrawImage(sImage, 
new Rectangle(00, sImage.Width, sImage.Height)); 
                
//Graphics g = Graphics.FromImage(sImage);
                g.DrawImage(wImage, new Rectangle(sImage.Width-wImage.Width, sImage.Height-wImage.Height, wImage.Width, wImage.Height),00, wImage.Width, wImage.Height, GraphicsUnit.Pixel);
                
// 保存,并将 image 转化为 byte[]
                MemoryStream ms=new MemoryStream();
                
                bitmap.Save(ms, ImageFormat.Jpeg); 
                FileName
=fliename()+".jpg";                 
                ms.GetBuffer();
                FileStream f 
= new FileStream(Server.MapPath("upImg/daPic"+ "/" + FileName, FileMode.Create);    
                
///把内内存里的数据写入物理文件
                ms.WriteTo(f);
                ms.Close();
                f.Close();
                f 
= null;
                ms 
= null;
                bitmap.Dispose();

                Bitmap bitmap2 
= new Bitmap(12090, PixelFormat.Format32bppArgb);
                Graphics g2 
= Graphics.FromImage(bitmap2);
                g2.Clear(Color.Transparent);
                g2.DrawImage(sImage, 
new Rectangle(0012090)); 
                MemoryStream ms2
=new MemoryStream();
                
                bitmap2.Save(ms2, ImageFormat.Jpeg);                              
                ms2.GetBuffer();
                FileStream f2 
= new FileStream(Server.MapPath("upImg/xiaoPic"+ "/" + FileName, FileMode.Create);    
                
///把内内存里的数据写入物理文件
                ms2.WriteTo(f2);
                ms2.Close();
                f2.Close();
                f2 
= null;
                ms2 
= null;
                bitmap2.Dispose();

                sImage.Dispose();
        
                
return true;
            }

            
catch(Exception ex)
            
{
                FileName 
=ex.ToString();            
            }

            
return false;

        }


        
/// <summary>
        
/// 返回一个带有路径的文件名
        
/// </summary>
        
/// <returns>返回一个字符串</returns>

        private string fliename()
        
{
            DateTime now 
=DateTime.Now;
            
string ml=now.ToString("yyyyMMdd");    
            
string  newname=now.ToString("yyyyMMddhhmmss");
            
string  lmname=now.ToString("yyyy-MM");
            Random a 
=new Random();
            
int s=Convert.ToInt32(a.NextDouble()*100000+100000);
            
return lmname+"/"+newname+ s.ToString();
        }

        
/// <summary>
        
/// 判断目录是否存在
        
/// 如果不存在则创建目录;
        
/// </summary>

        private void addml()
        
{
            DateTime now 
=DateTime.Now;
            
string  lmname=now.ToString("yyyy-MM");            
            
if (!Directory.Exists(Server.MapPath("upImg/xiaoPic")+"/"+lmname))
            
{                
                Directory.CreateDirectory(Server.MapPath(
"upImg/xiaoPic")+"/"+lmname);
            }

            
if (!Directory.Exists(Server.MapPath("upImg/daPic")+"/"+lmname))
            
{                
                Directory.CreateDirectory(Server.MapPath(
"upImg/daPic")+"/"+lmname);
            }

        
        }


        
private bool filetype(string type)
        
{
            
bool s=false;
            
string[] wjlx={"image/jpeg","image/pjpeg","image/png","image/tiff","image/gif","image/bmp"};
            
for(int i=0;i<= wjlx.Length-1;i++)
            
{
                
if (wjlx[i]==type)
                
{
                    s
=true;
                    
break;                    
                }

            }

            
return s;
        }

       
    }

}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红火吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值