方法1、FormData简单实现

后端:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace Mao.Common
{
    public enum UploadFileType
    {
        Video,
        Image
    }

    public class FileUploadHelper
    {
        #region Fields

        private bool m_statu;
        private string m_msg;
        private string m_filename;


        #endregion

        #region 构造方法

        /// <summary>
        /// 初始化
        /// </summary>
        public FileUploadHelper()
        {
            m_statu = false;
            m_msg = "";
            m_filename = "";

        }



        #endregion

        #region 公开属性

        /// <summary>
        /// 处理结果
        /// </summary>
        public bool Statu
        {
            get { return m_statu; }
        }
        public string Msg
        {
            get { return m_msg; }
        }

        public string FileName
        {
            get { return m_filename; }
        }


        #endregion

        /// <summary>
        /// 
        /// </summary>
        /// <param name="file"></param>
        /// <param name="path">Server.MapPath转换后的路径</param>
        /// <returns></returns>
        public void SaveFile(HttpPostedFileBase file, string path)
        {
            if (file != null && file.ContentLength > 0)
            {
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string ext1 = Path.GetExtension(file.FileName);

                //格式判断
                if (ext1 != ".gif" && ext1 != ".jpg" && ext1 != ".jpeg" && ext1 != ".png" && ext1 != ".mp4")
                {
                    m_statu = false;
                    m_msg = "文件格式不正确!";

                }
                else
                {
                    string name = DateTime.Now.ToString("yyyyMMddHHmmssff");
                    string ext = Path.GetExtension(file.FileName);
                    string downpath = path + name + ext;
                    string filepath = path + name + ext;
                    file.SaveAs(filepath);
                    m_statu = true;
                    m_msg = "上传成功!";
                    m_filename = name + ext;
                }
            }
            else
            {
                m_statu = false;
                m_msg = "未接收到文件!";

            }

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="file"></param>
        /// <param name="type">限定文件类型</param>
        /// <param name="path"></param>
        public void SaveFile(HttpPostedFileBase file, UploadFileType type, string path)
        {
            string ext1 = Path.GetExtension(file.FileName);

            switch (type)
            {
                case UploadFileType.Image:
                    if (ext1 != ".gif" && ext1 != ".jpg" && ext1 != ".jpeg" && ext1 != ".png")
                    {
                        m_statu = false;
                        m_msg = "上传失败!文件格式不正确!";

                    }
                    else
                    {
                        m_statu = true;
                        m_msg = "上传成功!";
                    }
                    break;
                case UploadFileType.Video:
                    if (ext1 != ".mp4")
                    {
                        m_statu = false;
                        m_msg = "上传失败!文件格式不正确!";

                    }
                    else
                    {
                        m_statu = true;
                        m_msg = "上传成功!";
                    }
                    break;
                default:
                    m_statu = false;
                    m_msg = "上传失败!未知文件格式!";
                    break;

            }

            if (m_statu)
            {
                this.SaveFile(file, path);

            }



        }

    }

}
类库Sample

相关文章: