aspx頁面中用Input 標籤實現上傳圖片功能

實現上傳圖片功能需單獨的創建一個aspx頁面,
其中前臺頁面須要注意兩點:
a)實現上傳功能的input的type="file"
b)設置請求報文頭爲 enctype="multipart/form-data" 類型數據庫

 

前臺代碼以下:服務器

<form method="post" enctype="multipart/form-data">
        <table class="list">
            <tr>
                <th>上傳</th>
                <td>
                    <input type="file" name="f1" /></td>
            </tr>
            <tr>
                <th></th>
                <td>
                    <input type="submit" value="上傳" /></td>
            </tr>
        </table>
    </form>

 

在後臺.cs文件中需注意幾點:
a)使用 Request.Files 從請求報文中得到上傳過來的文件

b)上傳到服務器中須要重命名一個永不重複的文件,使用 Guid.NewGuid()
string newName = Guid.NewGuid() + extName;

c)上傳成功的標誌爲重命名的圖片上傳到服務器上,而且數據庫中存儲圖片路徑的字段修改爲功post

 

 

後臺處理上傳的方法 ProcessUpload() 代碼以下:ui

private void ProcessUpload(int pid)
        {
            //1.0獲得上傳過來文件
            HttpFileCollection fils = Request.Files;//獲得上傳過來的文件

            if (fils.Count > 0)
            {
                if (fils[0].ContentLength > 0)
                {
                    //2.0上傳圖片之後要將圖片的名稱作一個修改(不能重複)
                    string oldName = fils[0].FileName;
                    //獲得當前名稱的後綴
                    string extName = System.IO.Path.GetExtension(oldName);
                    //生成一個永不重複的名稱
                    string newName = Guid.NewGuid() + extName;


                    using (Image img = Image.FromStream(fils[0].InputStream))
                    {
                        //將圖片流保存到服務器路徑上
                        img.Save(Server.MapPath("/upload/img/") + newName);

                        //將數據庫中數據對應對象的圖片名稱改成當前圖片的名稱
                        BlogPhotoBLL bll = new BlogPhotoBLL();
                        BlogPhoto model = bll.GetModel(pid);
                        //修改圖片的名稱
                        model.PSrc = newName;
                        //提交,修改數據庫圖片的名稱
                        if (bll.Update(model))
                        {
                            Response.Write("<script>alert('上傳成功');window.location='/0906/Photo/PhotoList.aspx?albId=" + albId + "'</script>");
                            Response.End();
                        }
                    }
                }
                else
                {
                    Response.Write("<script>alert('您尚未選中文件');window.location=window.location</script>");
                    Response.End();
                }
            }
        }
相關文章
相關標籤/搜索