asp.net上传图片代码

潇潇雨兮

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="upfile.ascx.cs" Inherits="mycontrols_upfile" %>

       
        <table>
        <tr>
        <td><asp:TextBox ID="fileimages" runat="server"></asp:TextBox>
<asp:Label ID="Label2" runat="server" Font-Size="12px" ForeColor="Red" Text="类型png,jpg,gif,bmp"
    Width="148px"></asp:Label>
        <asp:Label ID="Label1" runat="server" Width="137px" Font-Size="12px" ForeColor="Red"></asp:Label></td>
        </tr>
                <tr>
        <td>     <asp:FileUpload ID="FileUpload1" runat="server" />
        &nbsp;<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" /><br /></td>
        </tr>
        </table>

 

上面是aspx页面

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;

public partial class mycontrols_upfile : System.Web.UI.UserControl
{
    private string _filepath;
    public string Filepath
    {
        get { return _filepath; }
        set { _filepath = value; }
    }
    public string getpath()
    {
        this.Filepath = this.fileimages.Text;
        return Filepath;
    }
    public string gopath(string str)
    {
        this.fileimages.Text= str;
        return str;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // MenuDAL.Current.BoundTree(TreeView1.Nodes);
            DataAccess.IsAdmin();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
       
            string name = this.FileUpload1.FileName;//文件名字
            string size = this.FileUpload1.PostedFile.ContentLength.ToString();//文件大小
            string type = this.FileUpload1.PostedFile.ContentType;//文件类型type == "image/pjpeg" || type == "image/gif" || type == "x-png"
          string type2 = name.Substring(name.LastIndexOf(".") + 1);//文件类型
          string path = Server.MapPath("~/fileload/") + "//" + DateTime.Now.ToString("yyyyMMddhhmmssffff") + "." + type2; ;//实际路径
          string datapath = "\\fileload/" + DateTime.Now.ToString("yyyyMMddhhmmssffff") +"."+ type2;
            if (Convert.ToInt32(size) > 2048)
            {
                this.Label1.Text = "上传失败文件大于2m";

            }

            if (type == "image/gif" || type == "image/bmp" || type == "image/pjpeg" || type == "image/x-png")
            {

                this.FileUpload1.SaveAs(path);
                this.Label1.Text = "上传成功";
                this.fileimages.Text = datapath;
            }
            else
            {

                this.Label1.Text = "文件类型不对上传失败";
            }
      
    }
}

 

 

 

 

这个上面是cs页面

 

 

使用的时候只要引用上路径就行了

 

 

要使用的页面头部加上这段代码

<%@ Register src="../upfile.ascx" tagname="upfile" tagprefix="uc1" %>

 

在要上传的地方加上

 <uc1:upfile ID="upfile1" runat="server" />

图片路径=upfile1.getpath();

 

 

 

 

 

 

封装的累文件

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Web.UI.WebControls;


namespace Bettem.Utility.IO
{
    public class FileUploadInfo
    {
        /// <summary>
        /// 上传文件方法
        /// </summary>
        /// <param name="fileUpload">FileUpload控件的ID</param>
        /// <param name="pathDir">要保存的路径</param>
        /// <param name="fileType">要上传的文件的类型([图片]image,[文件]file,[多媒体]media,flash)</param>
        /// <param name="fileFristName">上传文件重命名时的前缀</param>
        /// <param name="fileSize">上传文件限制的大小,单位是M</param>
        /// <returns>正确的时候返回string类型的文件路径,返回0为有错</returns>
        public  string UpFile(System.Web.UI.WebControls.FileUpload fileUpload,string pathDir,string fileType,string fileFristName,int fileSize)
        {
           
            string name = fileUpload.FileName;                                      //获取文件名字
            string getFileExtension = GetExtension(name);                           //获取文件扩展名
            string getFileNoExtension = GetFileName(name);                          //获取文件不带扩展名的名称
            if (!IsAllowedExtension(getFileExtension,fileType))                     //判断文件的是否为允许上传的文件
            {
                return "0";
            }
            if (fileUpload.PostedFile.ContentLength  > fileSize*1024*1024)
            {
                return "1";
            }
            Random rd = new Random();
            string datapath;
            try
            {
                string path = HttpContext.Current.Server.MapPath("~/" + pathDir + "/") + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + rd.Next().ToString() + getFileNoExtension + getFileExtension;
                string filePahtDir = HttpContext.Current.Server.MapPath("~/" + pathDir + "/");
                GetSaveDirectory(filePahtDir);
                fileUpload.SaveAs(path);
                datapath = "/" + pathDir + "/" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + rd.Next().ToString() + getFileNoExtension + getFileExtension;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return datapath;
        }

        ///<summary>
        ///是否允许该扩展名上传
        ///</summary>
        ///<param name="fileName">要上传的文件扩展名,如:(.jpg,.gif)</param>
        ///<param name="flag">文件类型(image,image1,media,file,flash)</param>
        private static bool IsAllowedExtension(string fileName, string flag)
        {
            //string strOldFilePath = "";
            string strExtension = "";
            string[] arrExtension = { ".zip", ".rar" };

            //允许上传的扩展名,可以改成从配置文件中读出
            switch (flag)
            {
                case "image":
                    arrExtension = new string[] { ".gif", ".jpg", ".jpeg", ".bmp", ".png" };
                    break;
                case "media":
                    arrExtension = new string[] { ".avi", ".mpg", ".mpeg", ".mp3", ".wmv", ".wav", ".wma" };
                    break;
                case "file":
                    arrExtension = new string[] { ".docx", ".txt", ".doc", ".ppt", ".pptx", ".pdf", ".zip", ".rar", ".swf", ".gif", ".jpg", ".jpeg", ".bmp", ".png", ".xls", ".xlsx", ".rtf", ".avi", ".mpg", ".mpeg", ".mp3", ".wmv", ".wav", ".wma" };
                    break;
                case "flash":
                    arrExtension = new string[] { ".swf" };
                    break;
                default:
                    break;
            }

            if (fileName != string.Empty)
            {
                //取得上传文件的扩展名
                strExtension = fileName.Substring(fileName.LastIndexOf("."));
                //判断该扩展名是否合法
                for (int i = 0; i < arrExtension.Length; i++)
                {
                    if (strExtension.ToLower().Equals(arrExtension[i]))
                    {
                        return true;
                    }
                }
            }
            return false;
        }

        /// <summary>
        /// 获取上传文件存放目录。
        /// </summary>
        /// <param name="DirectoryPath">存放文件的物理路径。</param>
        /// <returns>返回存放文件的目录。</returns>
        private static string GetSaveDirectory(string DirectoryPath)
        {
            if (!Directory.Exists(DirectoryPath))  // 判断当前目录是否存在。
            {
                Directory.CreateDirectory(DirectoryPath);  // 建立上传文件存放目录。
            }
            return DirectoryPath;
        }

        /// <summary>
        /// 获取文件扩展名
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        private static string GetExtension(string fileName)
        {
            try
            {
                int startPos = fileName.LastIndexOf(".");
                string ext = fileName.Substring(startPos, fileName.Length - startPos);
                return ext;
            }
            catch
            {
                return string.Empty;
            }
        }
        /// <summary>
        /// 获取不带扩展名的文件名
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        private static string GetFileName(string fileName)
        {
            try
            {
                fileName = fileName.Replace(@"/", @"\");
                int startPos = fileName.LastIndexOf(@"\");
                int endPos = fileName.LastIndexOf(@".");
                string ext = fileName.Substring(startPos + 1, fileName.Length - (startPos + 1) - (fileName.Length - endPos));
                return ext;
            }
            catch
            {
                return string.Empty;
            }
        }
        /// <summary>
        /// 删除指定文件
        /// </summary>
        /// <param name="strAbsolutePath">文件绝对路径</param>
        private static void DeleteFile(string strAbsolutePath)
        {
            //判断要删除的文件是否存在
            if (File.Exists(strAbsolutePath))
            {
                //删除文件
                File.Delete(strAbsolutePath);
            }
        }
        /// <summary>
        /// 删除指定文件
        /// </summary>
        /// <param name="strAbsolutePath">文件绝对路径</param>
        /// <param name="strFileName">文件名</param>
        private static void DeleteFile(string strAbsolutePath, string strFileName)
        {
            //判断路径最后有没有\符号,没有则自动加上
            if (strAbsolutePath.LastIndexOf("\\") == strAbsolutePath.Length)
            {
                //判断要删除的文件是否存在
                if (File.Exists(strAbsolutePath + strFileName))
                {
                    //删除文件
                    File.Delete(strAbsolutePath + strFileName);
                }
            }
            else
            {
                if (File.Exists(strAbsolutePath + "\\" + strFileName))
                {
                    File.Delete(strAbsolutePath + "\\" + strFileName);
                }
            }
        }
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值