码迷,mamicode.com
首页 > Web开发 > 详细

上传 下载

时间:2017-11-21 22:10:27      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:pos   return   mode   json   nec   char   exist   mvc   script   

namespace 专注MVC上传下载20余年.Controllers
{
    public class modelM
    {
        public int ID { get; set; }
        public string FileNamee { get; set; }
        public string FileType { get; set; }
        public string FileNum { get; set; }
        public string FileTime { get; set; }
    }
    public class HomeController : Controller
    {
        SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=D4Text;Integrated Security=True");
        
        public ActionResult show()
        {
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM FileInfo", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            var data = JsonConvert.SerializeObject(dt);
            var result = JsonConvert.DeserializeObject<List<modelM>>(data);
            con.Close();
            return View(result);
        }

        public ActionResult Upload()
        {
            if(Request.Files.Count==0)
            {
                return View();
            }
            var file = Request.Files[0];
            if (file.ContentLength == 0)
            {
                return View();
            }
            else
            {
                string target = Server.MapPath("~/Upload/");
                if(!System.IO.Directory.Exists(target))
                {
                    System.IO.Directory.CreateDirectory(target);
                }
                string filename = file.FileName;
                string path = target + filename;
                file.SaveAs(path);
                ExcelDAL exc = new ExcelDAL();
                DataTable dt = exc.ExcelToDS(path);
                foreach (DataRow dr in dt.Rows)
                {
                    modelM mm = new modelM();
                    mm.FileNamee = dr[0].ToString();
                    mm.FileType = dr[1].ToString();
                    mm.FileNum = dr[2].ToString();
                    mm.FileTime = dr[3].ToString();
                }

                modelM m = new modelM();
                m.FileNamee = filename;
                m.FileType = Path.GetExtension(filename);//获取后缀名
                m.FileNum = Request.Files.Count.ToString();
                m.FileTime = DateTime.Now.ToString();
                string sql = "INSERT INTO FileInfo VALUES(‘" + m.FileNamee + "‘,‘" + m.FileType + "‘,‘" + m.FileNum + "‘,‘" + m.FileTime + "‘)";
                con.Open();
                SqlCommand cmd = new SqlCommand(sql, con);
                var result = cmd.ExecuteNonQuery();
                con.Close();
                if(result>0)
                {
                    Response.Write("<script>alert(‘上传成功!‘);location.href=‘/Home/show‘</script>");
                    show();
                }
            }
            return View();
        }
        public ActionResult Download(int id)
        {
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM FileInfo where ID=" + id + "", con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            var data = JsonConvert.SerializeObject(dt);
            var result = JsonConvert.DeserializeObject<List<modelM>>(data);
            con.Close();
            var filename = dt.Rows[0]["FileNamee"];//获取文件名
            string filepath = Server.MapPath("/upload/" + filename);//获取路径
            FileStream fs = new FileStream(filepath, FileMode.Open);//创建流转换格式
            //return File(fs, "application/vnd.ms-stream", filename.ToString());
            byte[] bytes = new byte[(int)fs.Length];//创建byte类型(int)fs.length长度
            fs.Read(bytes, 0, bytes.Length);//read
            fs.Close();
            Response.Charset = "UTF-8";
            Response.ContentType = "application/octet-stream";
            Response.ContentEncoding = Encoding.Default;
            Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();
            return new EmptyResult();
        }

    }
}

技术分享图片

 

上传 下载

标签:pos   return   mode   json   nec   char   exist   mvc   script   

原文地址:http://www.cnblogs.com/NETSBW/p/7875199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!