C#項目中實現圖片的上傳(上傳至服務器項目指定文件夾內)和顯示,并定期刪除文件(30天之前)

  • 操作流程:上传图片后点击”显示图片“,图片加载出来!
  • 前端佈局:

  • .aspx 代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Pic_Up_Vi.aspx.cs" Inherits="Picture_uploadAndview.Pic_Up_Vi" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
       
<fieldset style="width: 1050px;">
<legend> 上傳PIC圖片</legend>
<asp:Label  runat="server" Text="上傳格式請選擇: .png/.gif/.bmp/.jpg 類型" Width="267px" ForeColor="blue"></asp:Label>
<br />
<asp:Label  runat="server" Text="請選擇上傳圖片:"></asp:Label>
<asp:FileUpload ID="FuImage" runat="server" />&nbsp;&nbsp;&nbsp;&nbsp;
       
<asp:Button ID="btnUpload" runat="server" Text="上传图片" OnClick="btnupload_Click" />
 <br />
<asp:Label runat="server" ID="Lb_Debug" CssClass="red"></asp:Label>
<br />
<asp:Button ID="btnSubmit" runat="server" Text="显示图片" OnClick="btnSubmit_Click" />
<br />      
<br />      
<asp:Image ID="Image1" runat="server" Height="500px" Width="1050px" />


</fieldset>
 

    </form>
</body>
</html>
  • 後台代碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Picture_uploadAndview
{
    public partial class Pic_Up_Vi : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }





        /// <summary>
        /// 圖片上傳
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnupload_Click(object sender, EventArgs e)
        {
            int flag = 0;
            string[] filetype = new string[] { ".png", ".gif", ".bmp", ".jpg" };

            if (FuImage.FileName == string.Empty)
            {
                PrtMsg( "請選擇要上傳的圖片!<br />");
                return;
            }
            else
            {
                foreach (var item in filetype)
                {

                    if (Path.GetExtension(FuImage.PostedFile.FileName).ToString() == item)
                    {
                        flag = 1;
                        break;
                    }
                }
                if (flag == 0)//控制上傳的是圖片文件(".png",".gif",".bmp",".jpg"),拿掉該if條件則變成文件上傳功能!
                {
                    Lb_Debug.Text = null;
                    PrtMsg( "請上傳指定類型的文檔!<br />");
                    return;
                }
                string filename = FuImage.FileName;

                /*作用:回去當前控件Lb_Debug所在頁面路徑
                                object ui = Lb_Debug;//顯示提示信息用的label
                                string type = ui.GetType().Name.ToLower();
                                System.Web.UI.Page page = null;
                                if (type.Contains("page"))
                                {
                                    page = (System.Web.UI.Page)ui;
                                }
                                else
                                {
                                    page = ((System.Web.UI.Control)ui).Page;
                                }
                                string serverpath = page.MapPath("~/Pictures"); //獲取Lb_Debug所在頁面路徑
                */
                string serverpath = Server.MapPath("~/Pictures");//獲取服務器中Pictures文件夾路徑

                string suffix = filename.Substring(filename.LastIndexOf(".") + 1);
                //获取上传文件的后缀   


                string ReName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + "." + suffix;
                //更改上传文件名   例如:2019516.png/20191106.jpg


                string filepath = serverpath + "\\" + ReName;//獲取圖片完整路徑

                try
                {
                    DelDayPicture();
                    FuImage.PostedFile.SaveAs(filepath);//保存圖片到目標文件夾
                    FileInfo file = new FileInfo(filepath);
                    if (!file.Exists)
                    {

                        PrtMsg( "保存文件失敗!<br />");
                        return;
                    }



                }
                catch (System.IO.IOException ex)
                {
                   PrtMsg(ex.Message.ToString());
                }
                DelPicture();
            }
        }


        protected void PrtMsg(string msg)
        {  Lb_Debug.Text += msg;
            Lb_Debug.Visible = true;}

    /// <summary>
    /// 刪除當天now之前上傳的圖片(根據圖片名稱)。即刪除例如:2019516.* 的圖片文件
    /// </summary>
    protected void DelDayPicture()
        {
            string[] filetype = new string[] { ".png", ".gif", ".bmp", ".jpg" };
            string nowDate = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
            string path = Server.MapPath("~/Pictures") + "/" + nowDate;
            foreach (var item in filetype)
            {
                string delpath = path + item;
                FileInfo file = new FileInfo(delpath);

                file.Delete();
            }


        }


        / <summary>
        / 圖片顯示按鈕
        / </summary>
        / <param name="sender"></param>
        / <param name="e"></param>
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            string path = GetPicturePath();
            Image1.ImageUrl = path;//格式:"~/upload/2019516.png"
        }

        /// <summary>
        /// 獲取圖片存儲文件夾的路徑
        /// </summary>
        /// <returns></returns>
        private string GetPicturePath()
        {
            string nowDate = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
            string path = Server.MapPath("~/Pictures") + "\\";

            string repath = "~/Pictures" + "/" + nowDate;//返回地址
          
            string folder = path + "\\" + nowDate;
            int i = 0;
            while (i <= 3)
            {
                if (i == 0) { folder += ".png"; repath += ".png"; }
                if (i == 1) { folder += ".gif"; repath += ".gif"; }
                if (i == 2) { folder += ".bmp"; repath += ".bmp"; }
                if (i == 3) { folder += ".jpg"; repath += ".jpg"; }
                FileInfo file = new FileInfo(folder);
                if (file.Exists)
                {

                    return repath;
                }
                i++;

            }
            return null;
        }


        /// <summary>
        /// 定期刪除圖片30天之前,根據圖片的創建日期 
        /// </summary>
        /// <param name="path">文件夾路徑</param>
        private void DelPicture( )
        {


            string path = Server.MapPath("~/Pictures") + "\\";
            DirectoryInfo folder = new DirectoryInfo(path);

            foreach (FileInfo file in folder.GetFiles("*.png"))
            {
                DateTime dt = file.CreationTime;//根據圖片創建日期進行刪除
                if (dt <= DateTime.Today.AddDays(-30))
                {
                    try
                    {
                        File.Delete(file.FullName);
                    }
                    catch
                    {

                    }
                }
            }

            foreach (FileInfo file in folder.GetFiles("*.gif"))
            {
                DateTime dt = file.CreationTime;
                if (dt <= DateTime.Today.AddDays(-30))
                {
                    try
                    {
                        File.Delete(file.FullName);
                    }
                    catch
                    {

                    }
                }
            }


            foreach (FileInfo file in folder.GetFiles("*.bmp"))
            {
                DateTime dt = file.CreationTime;
                if (dt <= DateTime.Today.AddDays(-30))
                {
                    try
                    {
                        File.Delete(file.FullName);
                    }
                    catch
                    {

                    }
                }
            }


            foreach (FileInfo file in folder.GetFiles("*.jpg"))
            {
                DateTime dt = file.CreationTime;
                if (dt <= DateTime.Today.AddDays(-30))
                {
                    try
                    {
                        File.Delete(file.FullName);
                    }
                    catch
                    {

                    }
                }
            }
            
        }
        private void ViewPicture()
        {

            string path = GetPicturePath();
            if (path == null || path == "")
            {
                Image1.Visible = false;
            }
            else
            {
                Lb_Debug.Text = null;
                Lb_Debug.Visible = false;
                Image1.Visible = true;
                Image1.ImageUrl = path;//格式:"~/upload/2019514.png"
            }


        }




    }
}
  • 运行效果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值