.Net 图片上传的一个类库的源码
来源:互联网 发布:深圳花花网络是干嘛的 编辑:程序博客网 时间:2024/05/27 18:17
上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单,可以新建一个上传类UpLoadAndSaveImage,这个类中包含三个函数UpLoadAndSave,CreateFilePath,SaveToServer。使用时调用下面的UpLoadAndSave函数就可以了,该函数第一个参数为要上传的图片数据,第二个参数为上传的虚拟路径(相对路径),第三个参数为上传图片的格式,第四个参数为上传的物理路径。在这个函数中调用CreateFilePath函数产生随机的图片名称,最后再调用SaveToServer保存图片到服务器上。
public string UpLoadAndSave(byte[] data,refstring virPath,string fext,string physicPath)
...{
// 返回文件物理地址,修改虚拟地址
if(data==null||virPath==null||fext==null||physicPath=="")
...{
throw new Exception(" 非法参数" );
}
string rtnValue=SaveToServer(data,fext,physicPath,data.Length);
virPath += rtnValue;
physicPath+=rtnValue;
return physicPath;
}
private string CreateFilePath(string fext)
...{
string filePath="";
Random rd=new Random();
filePath+=DateTime.Now.Year.ToString("0000");
filePath+=DateTime.Now.Month.ToString("00");
filePath+=DateTime.Now.Date.ToString("00");
filePath+=DateTime.Now.Hour.ToString("00");
filePath+=DateTime.Now.Minute.ToString("00");
filePath+=DateTime.Now.Second.ToString("00");
filePath+=DateTime.Now.Millisecond.ToString("00");
filePath+=rd.Next(99).ToString("00");
filePath+="."+fext;
return filePath;
}
private string SaveToServer(byte[] data,string fext,string physicPath,int fileLen)
...{
string filePath=CreateFilePath(fext);
string rtnValue=filePath;
filePath=filePath.Insert(0,@physicPath);
if(File.Exists(filePath))
...{
filePath=CreateFilePath(fext);
rtnValue=filePath;
}
FileStream fs=new FileStream(filePath,FileMode.CreateNew);
fs.Write(data,0,fileLen);
fs.Close();
return rtnValue;
}
//在其他页面调用该上传类,见下面的实例:
UpLoadAndSaveImage upload=new UpLoadAndSaveImage();
try
...{
string virPath="UploadFiles/";
string physicPath=Server.MapPath(Request.ApplicationPath+"/"+"UploadFiles/");
string fext=this.File1.PostedFile.FileName;
if(fext.Length==0)
...{
return;
}
fext=Path.GetExtension(fext).ToLower();
if(fext!=".jpg"&&fext!=".gif"&&fext!=".bmp"&&fext!=".doc"&&fext!=".rar"&&fext!=".zip"&&fext!=".jpeg")
...{
Response.Write("<script>alert('Invalid file format,the file format must be jpg or jpeg or gif
or bmp or doc or rar or zip')</script>");
return;
}
byte[] data=newbyte[this.File1.PostedFile.ContentLength];
this.File1.PostedFile.InputStream.Read(data,0,this.File1.PostedFile.ContentLength);
physicPath=upload.UpLoadAndSave(data,ref virPath,fext,physicPath);
url=virPath;
if(Session["PhotoUrl"]==null)
...{
ArrayList al=new ArrayList();
al.Add(physicPath);
Session["PhotoUrl"]=al;
}
else
...{
ArrayList al2=(ArrayList)Session["PhotoUrl"];
al2.Add(physicPath);
Session["PhotoUrl"]=al2;
}
}
catch(Exception ex)
...{
Response.Write("<script>alert('"+ex.Message+"');</script>");
}
// 如果要指定上传图片的大小,可以在调用该上传类前生成,见下面的实例:
try
...{
empPic = new Bitmap(File1.PostedFile.InputStream);
}
catch
...{
Script.Alert(" 图片格式错误!" );
return false;
}
Bitmap picSmall = new Bitmap(empPic,227,91); // 生成图片大小
MemoryStream stream = new MemoryStream();
picSmall.Save(stream,ImageFormat.Jpeg);
byte[] byteArray = stream.ToArray();
PathName1="Photo/";
PathName=Server.MapPath(Request.ApplicationPath+"/Photo/");
UpLoadAndSaveImage upimage=new UpLoadAndSaveImage();
PathName=upimage.UpLoadAndSave(byteArray,ref PathName1,".jpg",PathName);
...{
// 返回文件物理地址,修改虚拟地址
if(data==null||virPath==null||fext==null||physicPath=="")
...{
throw new Exception(" 非法参数" );
}
string rtnValue=SaveToServer(data,fext,physicPath,data.Length);
virPath += rtnValue;
physicPath+=rtnValue;
return physicPath;
}
private string CreateFilePath(string fext)
...{
string filePath="";
Random rd=new Random();
filePath+=DateTime.Now.Year.ToString("0000");
filePath+=DateTime.Now.Month.ToString("00");
filePath+=DateTime.Now.Date.ToString("00");
filePath+=DateTime.Now.Hour.ToString("00");
filePath+=DateTime.Now.Minute.ToString("00");
filePath+=DateTime.Now.Second.ToString("00");
filePath+=DateTime.Now.Millisecond.ToString("00");
filePath+=rd.Next(99).ToString("00");
filePath+="."+fext;
return filePath;
}
private string SaveToServer(byte[] data,string fext,string physicPath,int fileLen)
...{
string filePath=CreateFilePath(fext);
string rtnValue=filePath;
filePath=filePath.Insert(0,@physicPath);
if(File.Exists(filePath))
...{
filePath=CreateFilePath(fext);
rtnValue=filePath;
}
FileStream fs=new FileStream(filePath,FileMode.CreateNew);
fs.Write(data,0,fileLen);
fs.Close();
return rtnValue;
}
//在其他页面调用该上传类,见下面的实例:
UpLoadAndSaveImage upload=new UpLoadAndSaveImage();
try
...{
string virPath="UploadFiles/";
string physicPath=Server.MapPath(Request.ApplicationPath+"/"+"UploadFiles/");
string fext=this.File1.PostedFile.FileName;
if(fext.Length==0)
...{
return;
}
fext=Path.GetExtension(fext).ToLower();
if(fext!=".jpg"&&fext!=".gif"&&fext!=".bmp"&&fext!=".doc"&&fext!=".rar"&&fext!=".zip"&&fext!=".jpeg")
...{
Response.Write("<script>alert('Invalid file format,the file format must be jpg or jpeg or gif
or bmp or doc or rar or zip')</script>");
return;
}
byte[] data=newbyte[this.File1.PostedFile.ContentLength];
this.File1.PostedFile.InputStream.Read(data,0,this.File1.PostedFile.ContentLength);
physicPath=upload.UpLoadAndSave(data,ref virPath,fext,physicPath);
url=virPath;
if(Session["PhotoUrl"]==null)
...{
ArrayList al=new ArrayList();
al.Add(physicPath);
Session["PhotoUrl"]=al;
}
else
...{
ArrayList al2=(ArrayList)Session["PhotoUrl"];
al2.Add(physicPath);
Session["PhotoUrl"]=al2;
}
}
catch(Exception ex)
...{
Response.Write("<script>alert('"+ex.Message+"');</script>");
}
// 如果要指定上传图片的大小,可以在调用该上传类前生成,见下面的实例:
try
...{
empPic = new Bitmap(File1.PostedFile.InputStream);
}
catch
...{
Script.Alert(" 图片格式错误!" );
return false;
}
Bitmap picSmall = new Bitmap(empPic,227,91); // 生成图片大小
MemoryStream stream = new MemoryStream();
picSmall.Save(stream,ImageFormat.Jpeg);
byte[] byteArray = stream.ToArray();
PathName1="Photo/";
PathName=Server.MapPath(Request.ApplicationPath+"/Photo/");
UpLoadAndSaveImage upimage=new UpLoadAndSaveImage();
PathName=upimage.UpLoadAndSave(byteArray,ref PathName1,".jpg",PathName);
以下是我曾经写的图片上传类,带水印功能:
//生成缩略图功能。
using System;
using System.IO;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Drawing;
namespace MyUplod
...{
/**//// <summary>
/// 非寒上传类(图片)。 作者:非寒.功能:上传文件操作(主要用于图片上传);
/// </summary>
public class Upload
...{
private int _Error = 0;//返回上传状态。
private int _MaxSize = 5120000;//最大单个上传文件 (默认)
private string _FileType = "jpg/gif/bmp/png";//所支持的上传类型用"/"隔开
private string _SavePath = System.Web.HttpContext.Current.Server.MapPath(".") + "";//保存文件的实际路径
private int _SaveType = 0;//上传文件的类型,0代表自动生成文件名
private HtmlInputFile _FormFile;//上传控件。
private string _InFileName = "";//非自动生成文件名设置。
private string _OutFileName = "";//输出文件名。
private bool _IsCreateImg = true;//是否生成缩略图。
private bool _Iss = false;//是否有缩略图生成.
private int _Height = 0;//获取上传图片的高度
private int _Width = 0;//获取上传图片的宽度
private int _sHeight = 120;//设置生成缩略图的高度
private int _sWidth = 120;//设置生成缩略图的宽度
private bool _IsDraw = false;//设置是否加水印
private int _DrawStyle = 0;//设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
private int _DrawString_x = 10;//绘制文本的X坐标(左上角)
private int _DrawString_y = 10;//绘制文本的Y坐标(左上角)
private string _AddText = "杭州五维多媒体nHTTP://WWW.5D.CN";//设置水印内容
private string _Font = "宋体";//设置水印字体
private int _FontSize = 12;//设置水印字大小
private int _FileSize = 0;//获取已经上传文件的大小
private string _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(".") + "/images/5dm_new.jpg";//图片水印模式下的覆盖图片的实际地址
/**//// <summary>
/// Error返回值,1、没有上传的文件。2、类型不允许。3、大小超限。4、未知错误。0、上传成功。
/// </summary>
public int Error
...{
get ...{ return _Error; }
}
/**//// <summary>
/// 最大单个上传文件
/// </summary>
public int MaxSize
...{
set ...{ _MaxSize = value; }
}
/**//// <summary>
/// 所支持的上传类型用"/"隔开
/// </summary>
public string FileType
...{
set ...{ _FileType = value; }
}
/**//// <summary>
/// //保存文件的实际路径
/// </summary>
public string SavePath
...{
set ...{ _SavePath = System.Web.HttpContext.Current.Server.MapPath(value); }
get ...{return _SavePath;}
}
/**//// <summary>
/// 上传文件的类型,0代表自动生成文件名
/// </summary>
public int SaveType
...{
set ...{ _SaveType = value; }
}
/**//// <summary>
/// 上传控件
/// </summary>
public HtmlInputFile FormFile
...{
set ...{ _FormFile = value; }
}
/**//// <summary>
/// //非自动生成文件名设置。
/// </summary>
public string InFileName
...{
set ...{ _InFileName = value; }
}
/**//// <summary>
/// 输出文件名
/// </summary>
public string OutFileName
...{
get ...{ return _OutFileName; }
set ...{ _OutFileName = value; }
}
/**//// <summary>
/// 是否有缩略图生成.
/// </summary>
public bool Iss
...{
get ...{ return _Iss; }
}
/**//// <summary>
/// //获取上传图片的宽度
/// </summary>
public int Width
...{
get ...{ return _Width; }
}
/**//// <summary>
/// //获取上传图片的高度
/// </summary>
public int Height
...{
get ...{ return _Height; }
}
/**//// <summary>
/// 设置缩略图的宽度
/// </summary>
public int sWidth
...{
get ...{ return _sWidth; }
set ...{ _sWidth = value; }
}
/**//// <summary>
/// 设置缩略图的高度
/// </summary>
public int sHeight
...{
get ...{ return _sHeight; }
set ...{ _sHeight = value; }
}
/**//// <summary>
/// 是否生成缩略图
/// </summary>
public bool IsCreateImg
...{
get ...{ return _IsCreateImg; }
set ...{ _IsCreateImg = value; }
}
/**//// <summary>
/// 是否加水印
/// </summary>
public bool IsDraw
...{
get ...{ return _IsDraw; }
set ...{ _IsDraw = value; }
}
/**//// <summary>
/// 设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
/// </summary>
public int DrawStyle
...{
get ...{ return _DrawStyle; }
set ...{ _DrawStyle = value; }
}
/**//// <summary>
/// 绘制文本的X坐标(左上角)
/// </summary>
public int DrawString_x
...{
get ...{ return _DrawString_x; }
set ...{ _DrawString_x = value; }
}
/**//// <summary>
/// 绘制文本的Y坐标(左上角)
/// </summary>
public int DrawString_y
...{
get ...{ return _DrawString_y; }
set ...{ _DrawString_y = value; }
}
/**//// <summary>
/// 设置文字水印内容
/// </summary>
public string AddText
...{
get ...{ return _AddText; }
set ...{ _AddText = value; }
}
/**//// <summary>
/// 设置文字水印字体
/// </summary>
public string Font
...{
get ...{ return _Font; }
set ...{ _Font = value; }
}
/**//// <summary>
/// 设置文字水印字的大小
/// </summary>
public int FontSize
...{
get ...{ return _FontSize; }
set ...{ _FontSize = value; }
}
public int FileSize
...{
get ...{ return _FileSize; }
set ...{ _FileSize = value; }
}
/**//// <summary>
/// 图片水印模式下的覆盖图片的实际地址
/// </summary>
public string CopyIamgePath
...{
set ...{ _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(value); }
}
//获取文件的后缀名
private string GetExt(string path)
...{
return Path.GetExtension(path);
}
//获取输出文件的文件名。
private string FileName(string Ext)
...{
if (_SaveType == 0 || _InFileName.Trim() == "")
return DateTime.Now.ToString("yyyyMMddHHmmssfff") + Ext;
else
return _InFileName;
}
//检查上传的文件的类型,是否允许上传。
private bool IsUpload(string Ext)
...{
Ext = Ext.Replace(".", "");
bool b = false;
string[] arrFileType = _FileType.Split(';');
foreach (string str in arrFileType)
...{
if (str.ToLower() == Ext.ToLower())
...{
b = true;
break;
}
}
return b;
}
//上传主要部分。
public void Open()
...{
HttpPostedFile hpFile = _FormFile.PostedFile;
if (hpFile == null || hpFile.FileName.Trim() == "")
...{
_Error = 1;
return;
}
string Ext = GetExt(hpFile.FileName);
if (!IsUpload(Ext))
...{
_Error = 2;
return;
}
int iLen = hpFile.ContentLength;
if (iLen > _MaxSize)
...{
_Error = 3;
return;
}
try
...{
if (!Directory.Exists(_SavePath))
Directory.CreateDirectory(_SavePath);
byte[] bData = new byte[iLen];
hpFile.InputStream.Read(bData, 0, iLen);
string FName;
FName = FileName(Ext);
string TempFile = "";
if (_IsDraw)
...{
TempFile=FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString();
}
else
...{
TempFile = FName;
}
FileStream newFile = new FileStream(_SavePath + TempFile, FileMode.Create);
newFile.Write(bData, 0, bData.Length);
newFile.Flush();
int _FileSizeTemp = hpFile.ContentLength;
if (_IsDraw)
...{
if (_DrawStyle == 0)
...{
System.Drawing.Image Img1 = System.Drawing.Image.FromStream(newFile);
Graphics g = Graphics.FromImage(Img1);
g.DrawImage(Img1, 100, 100, Img1.Width, Img1.Height);
Font f = new Font(_Font, _FontSize);
Brush b = new SolidBrush(Color.Red);
string addtext = _AddText;
g.DrawString(addtext, f, b, _DrawString_x, _DrawString_y);
g.Dispose();
Img1.Save(_SavePath + FName);
Img1.Dispose();
}
else
...{
System.Drawing.Image image = System.Drawing.Image.FromStream(newFile);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(_CopyIamgePath);
Graphics g = Graphics.FromImage(image);
g.DrawImage(copyImage, new Rectangle(image.Width - copyImage.Width - 5, image.Height - copyImage.Height - 5, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();
image.Save(_SavePath + FName);
image.Dispose();
}
}
try
...{
//获取图片的高度和宽度
System.Drawing.Image Img = System.Drawing.Image.FromStream(newFile);
_Width = Img.Width;
_Height = Img.Height;
//生成缩略图部分
if (_IsCreateImg)
...{
//如果上传文件小于15k,则不生成缩略图。
if (iLen > 15360)
...{
System.Drawing.Image newImg = Img.GetThumbnailImage(_sWidth, _sHeight, null, System.IntPtr.Zero);
newImg.Save(_SavePath + FName.Split('.').GetValue(0).ToString() + "_s." + FName.Split('.').GetValue(1).ToString());
newImg.Dispose();
_Iss = true;
}
}
if (_IsDraw)
...{
if (File.Exists(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString()))
...{
newFile.Dispose();
File.Delete(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString());
}
}
}
catch ...{ }
newFile.Close();
newFile.Dispose();
_OutFileName = FName;
_FileSize = _FileSizeTemp;
_Error = 0;
return;
}
catch
...{
_Error = 4;
return;
}
}
}
}
using System;
using System.IO;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Drawing;
namespace MyUplod
...{
/**//// <summary>
/// 非寒上传类(图片)。 作者:非寒.功能:上传文件操作(主要用于图片上传);
/// </summary>
public class Upload
...{
private int _Error = 0;//返回上传状态。
private int _MaxSize = 5120000;//最大单个上传文件 (默认)
private string _FileType = "jpg/gif/bmp/png";//所支持的上传类型用"/"隔开
private string _SavePath = System.Web.HttpContext.Current.Server.MapPath(".") + "";//保存文件的实际路径
private int _SaveType = 0;//上传文件的类型,0代表自动生成文件名
private HtmlInputFile _FormFile;//上传控件。
private string _InFileName = "";//非自动生成文件名设置。
private string _OutFileName = "";//输出文件名。
private bool _IsCreateImg = true;//是否生成缩略图。
private bool _Iss = false;//是否有缩略图生成.
private int _Height = 0;//获取上传图片的高度
private int _Width = 0;//获取上传图片的宽度
private int _sHeight = 120;//设置生成缩略图的高度
private int _sWidth = 120;//设置生成缩略图的宽度
private bool _IsDraw = false;//设置是否加水印
private int _DrawStyle = 0;//设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
private int _DrawString_x = 10;//绘制文本的X坐标(左上角)
private int _DrawString_y = 10;//绘制文本的Y坐标(左上角)
private string _AddText = "杭州五维多媒体nHTTP://WWW.5D.CN";//设置水印内容
private string _Font = "宋体";//设置水印字体
private int _FontSize = 12;//设置水印字大小
private int _FileSize = 0;//获取已经上传文件的大小
private string _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(".") + "/images/5dm_new.jpg";//图片水印模式下的覆盖图片的实际地址
/**//// <summary>
/// Error返回值,1、没有上传的文件。2、类型不允许。3、大小超限。4、未知错误。0、上传成功。
/// </summary>
public int Error
...{
get ...{ return _Error; }
}
/**//// <summary>
/// 最大单个上传文件
/// </summary>
public int MaxSize
...{
set ...{ _MaxSize = value; }
}
/**//// <summary>
/// 所支持的上传类型用"/"隔开
/// </summary>
public string FileType
...{
set ...{ _FileType = value; }
}
/**//// <summary>
/// //保存文件的实际路径
/// </summary>
public string SavePath
...{
set ...{ _SavePath = System.Web.HttpContext.Current.Server.MapPath(value); }
get ...{return _SavePath;}
}
/**//// <summary>
/// 上传文件的类型,0代表自动生成文件名
/// </summary>
public int SaveType
...{
set ...{ _SaveType = value; }
}
/**//// <summary>
/// 上传控件
/// </summary>
public HtmlInputFile FormFile
...{
set ...{ _FormFile = value; }
}
/**//// <summary>
/// //非自动生成文件名设置。
/// </summary>
public string InFileName
...{
set ...{ _InFileName = value; }
}
/**//// <summary>
/// 输出文件名
/// </summary>
public string OutFileName
...{
get ...{ return _OutFileName; }
set ...{ _OutFileName = value; }
}
/**//// <summary>
/// 是否有缩略图生成.
/// </summary>
public bool Iss
...{
get ...{ return _Iss; }
}
/**//// <summary>
/// //获取上传图片的宽度
/// </summary>
public int Width
...{
get ...{ return _Width; }
}
/**//// <summary>
/// //获取上传图片的高度
/// </summary>
public int Height
...{
get ...{ return _Height; }
}
/**//// <summary>
/// 设置缩略图的宽度
/// </summary>
public int sWidth
...{
get ...{ return _sWidth; }
set ...{ _sWidth = value; }
}
/**//// <summary>
/// 设置缩略图的高度
/// </summary>
public int sHeight
...{
get ...{ return _sHeight; }
set ...{ _sHeight = value; }
}
/**//// <summary>
/// 是否生成缩略图
/// </summary>
public bool IsCreateImg
...{
get ...{ return _IsCreateImg; }
set ...{ _IsCreateImg = value; }
}
/**//// <summary>
/// 是否加水印
/// </summary>
public bool IsDraw
...{
get ...{ return _IsDraw; }
set ...{ _IsDraw = value; }
}
/**//// <summary>
/// 设置加水印的方式0:文字水印模式,1:图片水印模式,2:不加
/// </summary>
public int DrawStyle
...{
get ...{ return _DrawStyle; }
set ...{ _DrawStyle = value; }
}
/**//// <summary>
/// 绘制文本的X坐标(左上角)
/// </summary>
public int DrawString_x
...{
get ...{ return _DrawString_x; }
set ...{ _DrawString_x = value; }
}
/**//// <summary>
/// 绘制文本的Y坐标(左上角)
/// </summary>
public int DrawString_y
...{
get ...{ return _DrawString_y; }
set ...{ _DrawString_y = value; }
}
/**//// <summary>
/// 设置文字水印内容
/// </summary>
public string AddText
...{
get ...{ return _AddText; }
set ...{ _AddText = value; }
}
/**//// <summary>
/// 设置文字水印字体
/// </summary>
public string Font
...{
get ...{ return _Font; }
set ...{ _Font = value; }
}
/**//// <summary>
/// 设置文字水印字的大小
/// </summary>
public int FontSize
...{
get ...{ return _FontSize; }
set ...{ _FontSize = value; }
}
public int FileSize
...{
get ...{ return _FileSize; }
set ...{ _FileSize = value; }
}
/**//// <summary>
/// 图片水印模式下的覆盖图片的实际地址
/// </summary>
public string CopyIamgePath
...{
set ...{ _CopyIamgePath = System.Web.HttpContext.Current.Server.MapPath(value); }
}
//获取文件的后缀名
private string GetExt(string path)
...{
return Path.GetExtension(path);
}
//获取输出文件的文件名。
private string FileName(string Ext)
...{
if (_SaveType == 0 || _InFileName.Trim() == "")
return DateTime.Now.ToString("yyyyMMddHHmmssfff") + Ext;
else
return _InFileName;
}
//检查上传的文件的类型,是否允许上传。
private bool IsUpload(string Ext)
...{
Ext = Ext.Replace(".", "");
bool b = false;
string[] arrFileType = _FileType.Split(';');
foreach (string str in arrFileType)
...{
if (str.ToLower() == Ext.ToLower())
...{
b = true;
break;
}
}
return b;
}
//上传主要部分。
public void Open()
...{
HttpPostedFile hpFile = _FormFile.PostedFile;
if (hpFile == null || hpFile.FileName.Trim() == "")
...{
_Error = 1;
return;
}
string Ext = GetExt(hpFile.FileName);
if (!IsUpload(Ext))
...{
_Error = 2;
return;
}
int iLen = hpFile.ContentLength;
if (iLen > _MaxSize)
...{
_Error = 3;
return;
}
try
...{
if (!Directory.Exists(_SavePath))
Directory.CreateDirectory(_SavePath);
byte[] bData = new byte[iLen];
hpFile.InputStream.Read(bData, 0, iLen);
string FName;
FName = FileName(Ext);
string TempFile = "";
if (_IsDraw)
...{
TempFile=FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString();
}
else
...{
TempFile = FName;
}
FileStream newFile = new FileStream(_SavePath + TempFile, FileMode.Create);
newFile.Write(bData, 0, bData.Length);
newFile.Flush();
int _FileSizeTemp = hpFile.ContentLength;
if (_IsDraw)
...{
if (_DrawStyle == 0)
...{
System.Drawing.Image Img1 = System.Drawing.Image.FromStream(newFile);
Graphics g = Graphics.FromImage(Img1);
g.DrawImage(Img1, 100, 100, Img1.Width, Img1.Height);
Font f = new Font(_Font, _FontSize);
Brush b = new SolidBrush(Color.Red);
string addtext = _AddText;
g.DrawString(addtext, f, b, _DrawString_x, _DrawString_y);
g.Dispose();
Img1.Save(_SavePath + FName);
Img1.Dispose();
}
else
...{
System.Drawing.Image image = System.Drawing.Image.FromStream(newFile);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(_CopyIamgePath);
Graphics g = Graphics.FromImage(image);
g.DrawImage(copyImage, new Rectangle(image.Width - copyImage.Width - 5, image.Height - copyImage.Height - 5, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();
image.Save(_SavePath + FName);
image.Dispose();
}
}
try
...{
//获取图片的高度和宽度
System.Drawing.Image Img = System.Drawing.Image.FromStream(newFile);
_Width = Img.Width;
_Height = Img.Height;
//生成缩略图部分
if (_IsCreateImg)
...{
//如果上传文件小于15k,则不生成缩略图。
if (iLen > 15360)
...{
System.Drawing.Image newImg = Img.GetThumbnailImage(_sWidth, _sHeight, null, System.IntPtr.Zero);
newImg.Save(_SavePath + FName.Split('.').GetValue(0).ToString() + "_s." + FName.Split('.').GetValue(1).ToString());
newImg.Dispose();
_Iss = true;
}
}
if (_IsDraw)
...{
if (File.Exists(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString()))
...{
newFile.Dispose();
File.Delete(_SavePath + FName.Split('.').GetValue(0).ToString() + "_temp." + FName.Split('.').GetValue(1).ToString());
}
}
}
catch ...{ }
newFile.Close();
newFile.Dispose();
_OutFileName = FName;
_FileSize = _FileSizeTemp;
_Error = 0;
return;
}
catch
...{
_Error = 4;
return;
}
}
}
}
- Net 图片上传的一个类库的源码
- .Net 图片上传的一个类库的源码
- asp.Net_图片上传的一个类库的源码
- .net上传图片的处理类库(缩略图、水印)
- .net 删除上传的图片
- .net中的上传文件的一个类
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码 (转载)
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码(一)
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 在ASP.NET中上传图片并生成缩略图的C#源码
- 自己写的一个图片上传的类
- VS2005图片上传源码 ASP.NET 图片上传源码 asp:FileUpload 图片上传源码
- 通过外网获取本机公网IP
- 2007年 10 月 30 日. 决定研究共享软件.
- .NET下,你采用的是哪种方式进行数据操作?
- libxml2 指南(中文)
- CLabel Code学习
- .Net 图片上传的一个类库的源码
- 飞机仓位区分代表的含义
- Java类的继承
- SourceGrid应用中文帮助
- RCP应用程序开发之如何打开多个工作台窗体
- jdbc详细资料
- ASP.NET设计应用程序的七大绝招
- libxml库函数解释
- ubuntu apache2配置