ASP.NET图片上传

Aspx代码

<head runat="server">
    <title>
     </title>
</head>
<body>
    <form id="form1" runat="server">
        <br />
        <br />
        <br />        
        <table  align="center"  border="1" cellpadding="0" cellspacing="0"  bordercolor="#3399ff" style="width: 749px">
            <tr>
                <td align="center" style="width:267px" >
                    <input type="file" runat="server" id="fileuploadid" style="width: 439px" />
                </td>
                <td  align="right" style="width:150px"><asp:Button runat="server" ID="btupload" OnClick="BtUpLoad" Text="上传" />
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

 

aspx.cs代码

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    protected string DefaultTitle = ConfigurationSettings.AppSettings["SystemName"].ToString();             //获取系统名称
    protected string strConn = ConfigurationSettings.AppSettings["strSqlConn"].ToString();                  //获取数据库连接字条串
    protected string UploadFileTypes = ConfigurationSettings.AppSettings["UploadFileType"].ToString();            //获取允许上传的格式
    protected string UploadSavePath = ConfigurationSettings.AppSettings["UploadSavePath"].ToString();       //获取附件保存根目录,如upfiles/
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    /// <summary>
    /// 上传附件并添加上传附件记录到数据库
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void BtUpLoad(object sender, EventArgs e)
    {
        string filePath;                                      //文件路径
        string fileName;                                      //附件名称
        int    fileSize;                                      //附件大小
        string fileType;                                      //附件格式
        string sAbsoluteSavePath;                             //服务器端附件保存根目录
        string sFileSaveName;                                 //附件保存在服务器上的名称
        int    tt;
        string savePath;
        if (fileuploadid.PostedFile.FileName != "")
        {
            savePath = DateTime.Now.ToString("yyyyMM")+"/";   //指定上传附件保存的目录,根据年月生成 如200804/
            Exception excp = InitUploadSaveDirectory(savePath);
            //如果返回异常则退出程序
            if (excp != null)                              
            {
                Response.Write(excp.ToString());
                return;
            }
            filePath = fileuploadid.PostedFile.FileName;
            fileName = Path.GetFileName(filePath);                           //原始附件名称
            fileSize = fileuploadid.PostedFile.ContentLength;               //附件大小
            tt = fileName.LastIndexOf(".");
            fileType = fileName.Substring(tt).ToLower();                   //附件格式,小写
            //获取服务端附件保存根目录,如D:/上传/upfiles/200804/
            sAbsoluteSavePath = Path.Combine(Request.MapPath(UploadSavePath), savePath);
            //指定附件保存在服务器上的名称(根本上传时间生成,重名处理)
            sFileSaveName = DateTime.Now.ToString("MMdd") + DateTime.Now.ToString("hhmmss") + fileType;

            if (fileSize > 0 && fileType.Length > 0 && ("|" + UploadFileTypes + "|").IndexOf("|" + fileType + "|") > -1)
            {
              try
              {
                  string sqlInsert;
                  fileuploadid.PostedFile.SaveAs(Path.Combine(sAbsoluteSavePath, sFileSaveName));
                  SqlConnection sqlcon = new SqlConnection(strConn);
                  sqlInsert = "insert into web_AttachmentInfo(FileName,OrigialName,SavePath,FileSize,Uptime) values('" + sFileSaveName + "','" + fileName + "','" + sAbsoluteSavePath + "','" + fileSize + "','" + DateTime.Now.ToString("yyyy - MM - dd") + "')";
                  SqlCommand sqlcom = new SqlCommand(sqlInsert,sqlcon);
                  sqlcon.Open();
                  sqlcom.ExecuteNonQuery();                 
                  Response.Write("<script>alert('上传成功!');</script>");

              }
              catch (Exception ex)
              {
                  Response.Write("错误:" +ex.Message);
              }
            }
        }
        else
        {          
            Response.Write("<script>alert('靠,先选个附件啊!');</script>");
        }
    }
   
    /// <summary>
    /// 初始化上传目录
    /// </summary>
    /// <param name="savePath">附件保存目录的格式或者路径</param>
    /// <returns>如果创建保存路径失败将返回异常</returns>
    private Exception InitUploadSaveDirectory(string savePath)
    {        
        if (UploadSavePath == null)
        {
            throw new ArgumentNullException("UploadSavePath");
        }
        //获取服务端附件保存根目录,如D:/上传/upfiles/200804/
        string sAbspath = Request.MapPath(UploadSavePath);
        //如果路径不存在就试图创建根目录
        if (!Directory.Exists(sAbspath) )
        {
            Directory.CreateDirectory(sAbspath);           
        }
        sAbspath = Path.Combine(sAbspath,savePath);
        //如果保存附件目录不存在就创建该保存目录
        if(!Directory .Exists(sAbspath))
        {
            Directory.CreateDirectory(sAbspath);
        }
        return null;
    }
}

 

web.config代码

增加几个节点
<appSettings>
  <!--定义附件保存的根目录-->
  <add key="UploadSavePath" value="UpFiles/"/>
  <!--定义允许上传的文件后缀-->
  <add key="UploadFileType" value=".gif|.jpg|.jpe|.jpeg|.png|.bmp|.zip|.rar|.ppt|.doc|.xls|.mdb|.ppt|.txt|.pdf|.mp3|.wma"/>
  <!--首页名称-->
  <add key="SystemName" value="上传文件"/>
  <!--定义数据库连接语句-->
  <add key="strSqlConn" value="server=11AA7FAB9CBB43E;database=AttachmentInfo;User id=sa;password=sa"/>
 </appSettings>

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值