图片上传的功能简介及web.config设置(自动生成所略图)

程序代码: 功能: 1。把图片文件(JPG GIF PNG)上传, 2。保存到指定的路径(在web.config中设置路径,以文件的原有格式保存), 3。并自动生成指定宽度的(在web.config中设置宽度) 4。和指定格式的(在web.config中指定缩略图的格式,支持GIF,JPG,PNG) 5。和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度) 6。可以判断是否已经存在文件 7。如果不覆盖,则给出错误 8。如果选中"覆盖原图"checkbox,则覆盖原图。 9。可以根据要求,在webform上设置1个以上的file input和相应的checkbox 10。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和 11。缩略图的文件名尺寸,以及 12。显示原图和缩略图。 13。缩略图的文件名格式,以便与管理: 大图(原图): 图片分类代号_图片代表的日期_图片原有文件名.原有格式 (如:28_2002-1-28_test.jpg) 缩略图: 图片分类代号_图片代表的日期_图片原有文件名.原有格式_thumb.指定的缩略图格式 (如:28_2002-1-28_test.jpg_thumb.gif) ---------------------- web.config文件中的相应设置: ... ... ... ... ... ... //FePicSavePath 图片保存在服务器上的实际路径 //FePicWebPath 图片的网络路径,用于显示图片 //FePicThumbWidth 缩略图的宽度 //所略图的格式 图片上传的数据库部分(自动生成所略图) 程序代码: public int FePicDataSet(string strPicTitle, string strPicDate, string strPicName, int intPicType, string strPicIntro, string strThumbnail, int opID) { //string strPicTitle, //string strPicDate, //string strPicName, //int intPicType, //string strPicIntro, //string strPicName, //string strThumbnail, //int opID SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); SqlCommand myCommand = new SqlCommand("mag_FePicDataSet", myConnection); // Mark the Command as a SPROC myCommand.CommandType = CommandType.StoredProcedure; // Add Parameters to SPROC SqlParameter parameterUserId = new SqlParameter("@opID", SqlDbType.Int); parameterUserId.Value = opID; myCommand.Parameters.Add(parameterUserId); SqlParameter parameterPicTitle = new SqlParameter("@picTitle", SqlDbType.Char, 30); parameterPicTitle.Value = strPicTitle; myCommand.Parameters.Add(parameterPicTitle); SqlParameter parameterPicDate = new SqlParameter("@picDate", SqlDbType.Char, 10); parameterPicDate.Value = strPicDate; myCommand.Parameters.Add(parameterPicDate); SqlParameter parameterPicName = new SqlParameter("@picName", SqlDbType.Char, 50); parameterPicName.Value = strPicName; myCommand.Parameters.Add(parameterPicName); SqlParameter parameterPicType = new SqlParameter("@picType", SqlDbType.Int); parameterPicType.Value = intPicType; myCommand.Parameters.Add(parameterPicType); SqlParameter parameterPicIntro = new SqlParameter("@picIntro", SqlDbType.Char, 255); parameterPicIntro.Value = strPicIntro; myCommand.Parameters.Add(parameterPicIntro); SqlParameter parameterThumbnail = new SqlParameter("@thumbnail", SqlDbType.Char, 50); parameterThumbnail.Value = strThumbnail; myCommand.Parameters.Add(parameterThumbnail); SqlParameter parameterHostAddress = new SqlParameter("@opIP", SqlDbType.Char, 15); parameterHostAddress.Value = Context.Request.UserHostAddress; myCommand.Parameters.Add(parameterHostAddress); //SqlParameter parameterRID = new SqlParameter("@returnID", SqlDbType.Int); //parameterReturnUserID.Value = -1; //parameterRID.Direction = ParameterDirection.Output; //myCommand.Parameters.Add(parameterRID); // Execute the command in a try/catch to catch duplicate username errors try { // Open the connection and execute the Command myConnection.Open(); myCommand.ExecuteNonQuery(); } catch { // failed to create a new user return -1; } finally { // Close the Connection if (myConnection.State == ConnectionState.Open) myConnection.Close(); } return 1; } 图片上传的Codebehind(自动生成所略图) 程序代码: using System; using System.Collections; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Text; using cj168.util; namespace cj168.Web.Mag.Admins.FeData { /// /// Summary description for fedata. /// public class feUploadPic : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox txtboxPicTitle; protected System.Web.UI.WebControls.Calendar calPicDate; protected System.Web.UI.WebControls.DropDownList ddlPicType; protected System.Web.UI.WebControls.TextBox txtboxPicIntro; protected System.Web.UI.HtmlControls.HtmlInputFile filePicName; protected System.Web.UI.WebControls.Button btnSubmit; protected System.Web.UI.WebControls.Label lblPicInfo; protected System.Web.UI.WebControls.TextBox txtboxPicDate; protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1; protected System.Web.UI.WebControls.RegularExpressionValidator vldCatName; protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2; protected System.Web.UI.WebControls.CustomValidator CustomValidator1; protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1; protected System.Web.UI.WebControls.HyperLink hlkOriPic; protected System.Web.UI.WebControls.HyperLink hlkNewPic; protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator2; protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator3; protected System.Web.UI.WebControls.CheckBoxList checkboxlistRewrite; private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here //if(Page.IsPostBack) //txtboxPicDate.Text = calPicDate.SelectedDate.ToString(); if(!Page.IsPostBack) { Bind2DropDownListPicType(); //for(int i = 0;i < Request.Files.Count; i++) //{ // checkboxlistRewrite.Items.Selected = false; //} } } public void Bind2DropDownListPicType() { cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins(); DataSet ds = admins.FePicTypeGet(); //ddlPicType.DataSource = ; DataView dv = new DataView(ds.Tables["PicType"]); DataRowView drv = dv.AddNew(); //DataColumnView dcv = dv.AddNew(); drv["Title"] = "请选择"; drv["fePicTypeID"] = "0"; drv.EndEdit(); dv.Sort = "fePicTypeID"; ddlPicType.DataSource = dv; ddlPicType.DataBind(); } public void UploadFile(object sender, System.EventArgs e) { string imgNameOnly, imgNameNoExt, imgExt; string imgThumbnail; int erroNumber = 0; System.Drawing.Image oriImg, newImg; string strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString(); string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower(); int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]); string fileExt; string strPicTitle = txtboxPicTitle.Text; string strPicIntro = txtboxPicIntro.Text; string strPicDate = txtboxPicDate.Text; int intPicType = Int32.Parse(ddlPicType.SelectedItem.Value); string strPicType = intPicType.ToString() + "_" + DateTime.Now.Date.ToShortDateString() + "_"; string strFePicWebPath = ConfigurationSettings.AppSettings["FePicWebPath"]; cj168.DataAccess.Admins admins = new cj168.DataAccess.Admins(); //if(admins.FePicTypeSet(textboxTitle.Text,0) < 0) // lblAddPicInfo.Text = "操作失败:已经存在相同名称类型,请修改"; //else // lblAddPicInfo.Text = "操作成功"; StringBuilder picInfo = new StringBuilder(); if(Page.IsValid) { for(int i = 0;i < Request.Files.Count; i++) { HttpPostedFile PostedFile = Request.Files; fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower(); //5-test.jpg imgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileName); if(fileExt == ".jpg" || fileExt == ".gif" || fileExt == ".png") { if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items.Selected == false)) { erroNumber = erroNumber + 1; picInfo.Append(" 错误:文件("+ (i+1) +") " + imgNameOnly + " 已经存在,请修改文件名
" ); } } else { erroNumber = erroNumber + 1; if(fileExt == "") picInfo.Append(" 错误:请选择文件
" ); else picInfo.Append(" 错误:文件("+ (i+1) +") " + imgNameOnly + " 扩展名 " + fileExt + " 不被许可
" ); } } if(erroNumber > 0) { picInfo.Append(" 全部操作均未完成,请修改错误,再进行操作
"); hlkOriPic.ImageUrl = ""; hlkOriPic.ToolTip = ""; hlkNewPic.ImageUrl = ""; hlkNewPic.ToolTip = ""; } else { for(int i = 0;i < Request.Files.Count; i++) { HttpPostedFile PostedFile = Request.Files; imgNameOnly = strPicType + System.IO.Path.GetFileName(PostedFile.FileName); imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName); imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower(); oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream); newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0)); switch(imgExt) { //case ".jpeg": case ".jpg": oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Jpeg); break; case ".gif": oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Gif); break; case ".png": oriImg.Save(strFePicSavePath + imgNameOnly , System.Drawing.Imaging.ImageFormat.Png); break; } //oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); switch(strFePicThumbFormat) { //jpeg format can get the smallest file size, and the png is the largest size //case "jpeg": case "jpg": newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg); imgThumbnail = imgNameOnly + "_thumb.jpg"; break; case "gif": newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif); imgThumbnail = imgNameOnly + "_thumb.gif"; break; case "png": newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png); imgThumbnail = imgNameOnly + "_thumb.png"; break; default: newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg); imgThumbnail = imgNameOnly + "_thumb.jpg"; break; }//switch picInfo.Append(" 文件 名:" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB
"); picInfo.Append(" 缩略图名:" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )

"); hlkOriPic.ImageUrl = strFePicWebPath + imgNameOnly; hlkOriPic.ToolTip = "◆原图◆n文件名:" + imgNameOnly + "n尺寸:" + oriImg.Width + " x " + oriImg.Height + "n字节:" + PostedFile.ContentLength/1024 + "KB"; hlkNewPic.ImageUrl = strFePicWebPath + imgThumbnail; hlkNewPic.ToolTip = "◆缩略图◆n文件名:" + imgThumbnail + "n尺寸:" + newImg.Width + " x " + newImg.Height; oriImg.Dispose(); newImg.Dispose(); picInfo.Append(" 图片上传成功
"); if(admins.FePicDataSet(strPicTitle, strPicDate, imgNameOnly, intPicType, strPicIntro, imgThumbnail,0) < 0) picInfo.Append(" 保存信息到数据库失败
"); else picInfo.Append(" 保存信息到数据库成功
"); }//for picInfo.Append(" 所有操作成功
"); }// if erronumber = 0 } else { picInfo.Append(" 有错误,请检查。操作未成功
"); hlkOriPic.ImageUrl = ""; hlkOriPic.ToolTip = ""; hlkNewPic.ImageUrl = ""; hlkNewPic.ToolTip = ""; } for(int i = 0;i < Request.Files.Count; i++) { checkboxlistRewrite.Items.Selected = false; } lblPicInfo.Text = picInfo.ToString(); } public void CalDateSelected(object sender,System.EventArgs e) { txtboxPicDate.Text = calPicDate.SelectedDate.ToShortDateString(); } public void ServerValidateCheckDate(object sender, System.Web.UI.WebControls.ServerValidateEventArgs value) { cj168.util.iUtil iUtils = new cj168.util.iUtil(); if(!iUtils.IsDate(value.Value)) value.IsValid = false; else value.IsValid = true; } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } } 图片上传的WebForm(自动生成所略图) 程序代码: <%@ Page language="c#" Codebehind="feUploadPic.aspx.cs" AutoEventWireup="false" Inherits="cj168.Web.Mag.Admins.FeData.feUploadPic" %> <%@ Register TagPrefix="cj168" TagName="Header" Src="modules/headerFe.ascx" %> fedata
图片标题

图片日期

图片分类
图片介绍
(支持文件格式:Jpg, Gif, Png)
图片名称 覆盖原有图片
Label
原图 缩略图
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值