文件上传的一段事例代码

来源:互联网 发布:qq能在linux下运行吗 编辑:程序博客网 时间:2024/05/16 07:24
以下是单文件上传的:
 
System.Drawing.Image image,newimage;                                     //定义image类的对象
                protected string imagePath;                                              //图片路径
                protected string imageType;                                              //图片类型
                protected string imageName;
                protected System.Web.UI.WebControls.RadioButtonList choice;                                              //图片名称
                System.Drawing.Image.GetThumbnailImageAbort callb =null;                 //提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行,如果此方法确定GetThumbnailImage方法应提前停止执行,则返回true,否则返回false
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------
private void btn_upload_Click(object sender, System.EventArgs e)
                {
                        string mPath,img_source,img_small;
                        string pid = Request.QueryString["pid"];
                        string typeid = Request.QueryString["typeid"];
                        string typef = Request.QueryString["typef"];
                        if(""!= upImage.PostedFile.FileName)
                        {
                                imagePath = upImage.PostedFile.FileName;
                                //取得图片类型
                                imageType = imagePath.Substring(imagePath.LastIndexOf(".")+1);
                                //取得图片名称
                                imageName = DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString()+imagePath.Substring(imagePath.LastIndexOf("//")+1);
                                if("jpg"!= imageType && "gif"!= imageType )
                                {
                                        Response.Write("<script language='javascript'>alert('对不起!请您选择jpg或者gif格式的图片!');</script>");
                                        return;
                                }
                                else
                                {
                                       
                                        mPath = Server.MapPath("../../picture");                                                                        //建立虚拟路径
                                        upImage.PostedFile.SaveAs(mPath+"//"+imageName);                                                        //保存到虚拟路径
                                        img_source = "picture/" + imageName;                          //显示原图
                                        image = System.Drawing.Image.FromFile(mPath+"//"+imageName);                                                //为上传的图片建立引用
                                        newimage = image.GetThumbnailImage(184,148,callb,new System.IntPtr());                                        //生成缩略图
                                        newimage.Save(Server.MapPath("../../picture")+"//small"+imageName);                                                //把缩略图保存到指定的虚拟路径
                                        image.Dispose();                                                                                        //释放image对象占用的资源
                                        newimage.Dispose();                                                                                        //释放newimage对象的资源
                                        img_small = "picture/" + "small" + imageName;                 //显示缩略图
                                       
                                        string imgid = pub.AddImage(txt_name.Text,img_source,img_small,txt_author.Text,Int32.Parse(pid),Int32.Parse(typeid));
                                        if (imgid != "")
                                        {
                                                string UserChoice = choice.SelectedValue;
                                                switch(UserChoice)
                                                {
                                                        case "1":
                                                                Response.Redirect ("index.aspx?typeid="+typeid+"&typef="+typef+"&pid="+pid+"");
                                                                break;
                                                        case "2":
                                                        {
                                                                txt_name.Text = "";
                                                                txt_author.Text = "";
                                                        }
                                                                break;
                                                }
                                        }
                                        else
                                        {
                                                txtMessage.Text ="不好意思,上传图片失败!";
                                        }
                                }
                        }       
                }
 
 
 
以下是多文件上传的:

<%@  Page  language="c#"  Codebehind="UpLoad.aspx.cs"  AutoEventWireup="false"  Inherits="WebPortal.Upload"  %> 
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN"  > 
<HTML> 
           <HEAD> 
                       <title>多文件上传</title> 
                       <script  language="JavaScript"> 
       function  addFile() 
       { 
                   var  str  =  '<INPUT  type="file"  size="50"  NAME="File">' 
                   document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str) 
       } 
                       </script> 
           </HEAD> 
           <body> 
                       <form  id="form1"  method="post"  runat="server"  enctype="multipart/form-data"> 
                                   <div  align="center"> 
                                               <h3>多文件上传</h3> 
                                               <P  id="MyFile"><INPUT  type="file"  size="50"  NAME="File"></P> 
                                               <P> 
                                                           <input  type="button"  value="增加(Add)"  onclick="addFile()">  <input  onclick="this.form.reset()"  type="button"  value="重置(ReSet)"> 
                                                           <asp:Button  Runat="server"  Text="开始上传"  ID="UploadButton"></asp:Button> 
                                               </P> 
                                               <P> 
                                                           <asp:Label  id="strStatus"  runat="server"  Font-Names="宋体"  Font-Bold="True"  Font-Size="9pt"  Width="500px" 
                                                                       BorderStyle="None"  BorderColor="White"></asp:Label> 
                                               </P> 
                                   </div> 
                       </form> 
           </body> 
</HTML> 
 
代码部分 
 
using  System; 
using  System.Collections; 
using  System.ComponentModel; 
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; 
 
namespace  WebPortal 

           ///  <summary> 
           ///  UpLoad  的摘要说明。 
           ///  实现多文件上传 
           ///  </summary> 
           public  class  Upload  :  System.Web.UI.Page 
           { 
                       protected  System.Web.UI.WebControls.Button  UploadButton; 
                       protected  System.Web.UI.WebControls.Label  strStatus; 
 
                       private  void  Page_Load(object  sender,  System.EventArgs  e) 
                       { 
                                   ///  在此处放置用户代码以初始化页面 
                                   if  (this.IsPostBack)  this.SaveImages(); 
                       } 
 
                       private  Boolean  SaveImages() 
                       { 
                                   ///'遍历File表单元素 
                                   HttpFileCollection  files    =  HttpContext.Current.Request.Files; 
 
                                   ///  '状态信息 
                                   System.Text.StringBuilder  strMsg  =  new  System.Text.StringBuilder(); 
                                   strMsg.Append("上传的文件分别是:<hr  color=red>"); 
                                   try 
                                   { 
                                               for(int  iFile  =  0;  iFile  <  files.Count;  iFile++) 
                                               { 
                                                           ///'检查文件扩展名字 
                                                           HttpPostedFile  postedFile  =  files[iFile]; 
                                                           string  fileName,  fileExtension; 
                                                           fileName  =  System.IO.Path.GetFileName(postedFile.FileName); 
                                                           if  (fileName  !=  "") 
                                                           { 
                                                                       fileExtension  =  System.IO.Path.GetExtension(fileName); 
                                                                       strMsg.Append("上传的文件类型:"  +  postedFile.ContentType.ToString()  +  "<br/>"); 
                                                                       strMsg.Append("客户端文件地址:"  +  postedFile.FileName  +  "<br/>"); 
                                                                       strMsg.Append("上传文件的文件名:"  +  fileName  +  "<br/>"); 
                                                                       strMsg.Append("上传文件的扩展名:"  +  fileExtension  +  "<br/><hr>"); 
                                                                       ///'可根据扩展名字的不同保存到不同的文件夹 
                                                                       ///注意:可能要修改你的文件夹的匿名写入权限。 
                                                                       postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/")  +  fileName); 
                                                           } 
                                               } 
                                               strStatus.Text  =  strMsg.ToString(); 
                                               return  true; 
                                   } 
                                   catch(System.Exception  Ex) 
                                   { 
                                               strStatus.Text  =  Ex.Message; 
                                               return  false; 
                                   } 
                       } 
                       #region  Web  窗体设计器生成的代码 
                       override  protected  void  OnInit(EventArgs  e) 
                       { 
                                   // 
                                   //  CODEGEN:  该调用是  ASP.NET  Web  窗体设计器所必需的。 
                                   // 
                                   InitializeComponent(); 
                                   base.OnInit(e); 
                       } 
 
                       ///  <summary> 
                       ///  设计器支持所需的方法  -  不要使用代码编辑器修改 
                       ///  此方法的内容。 
                       ///  </summary> 
                       private  void  InitializeComponent() 
                       {         
                                   this.ID  =  "Upload"; 
                                   this.Load  +=  new  System.EventHandler(this.Page_Load); 
 
                       } 
                       #endregion 
           } 
}


 
原创粉丝点击