• asp.net mvc3 简单的文件上传下载


    web.config配置

     <add name="连接字符串" connectionString="data source=服务器名;Initial Catalog=数据库;Persist Security Info=True;User ID=用户名;Password=密码" providerName="System.Data.SqlClient" />

    建立数据库、表就省略了····

    1.建立模型文件FileStores.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;

    namespace UpLoadFile.Models
    {
        [Table("FileStore")]      //    关联表用
        public class FileStore
        {
            public int ID { get; set; }
            [DisplayName("文件类型")]
            public string MimeType { get; set; }
            [DisplayName("文件名")]
            public string FileName { get; set; }
            [DisplayName("文件路径")]
            public string FileUrl { get; set; }
        }
    }

    2.新建文件DbConnect.cs 建立数据库链接用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Data.Entity;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;

    namespace UpLoadFile.Models
    {
        public class DbConnect : DbContext
        {
            public DbConnect(string connecting) : base(connecting) { }

            public DbSet<FileStore> FileStores { get; set; }
        }
    }

    3.建立控制器UploadController.cs,以下是代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.IO;
    using UpLoadFile.Models;

    namespace UpLoadFile.Controllers
    {
        public class UploadController : Controller
        {
            DbConnect db = new DbConnect("FileConnector");//数据库链接,FileConnector为web.config的链接字符串
            public ActionResult Index()
            {
                return View();
            }

       //文件上传
            public ActionResult Upload()
            {
                foreach (string upload in Request.Files)
                {
                    if (!HasFiles.HasFile(Request.Files[upload])) continue;

                    string miniType = Request.Files[upload].ContentType;
                    Stream fileStream = Request.Files[upload].InputStream;
                    string path = AppDomain.CurrentDomain.BaseDirectory + "files\\";
                    string filename = Path.GetFileName(Request.Files[upload].FileName);
                    Request.Files[upload].SaveAs(Path.Combine(path, filename));

                    var files = new FileStore()
                    {
                        MimeType = miniType,
                        FileName = filename,
                        FileUrl = Path.Combine(path, filename)
                    };
                    db.FileStores.Add(files);//存储到数据库
                    db.SaveChanges();
                }
                return RedirectToAction("List");
            }

       //下载列表页
            public ActionResult List()
            {
                var list = db.FileStores.ToList();
                return View(list);
            }

       //文件下载
            public FilePathResult Download(int id)
            {
                var fileinfo = db.FileStores.Find(id);
                return File(fileinfo.FileUrl, fileinfo.MimeType, fileinfo.FileName);
            }
        }

        public static class HasFiles
        {
            public static bool HasFile(this HttpPostedFileBase file)
            {
                return (file != null && file.ContentLength > 0) ? true : false;
            }
        }

    }

    4.视图文件

    index.cshtml

    @model UpLoadFile.Models.FileStore
    @{
        ViewBag.Title = "上传文件";
    }

    <h2>上传文件</h2>
    @using (Html.BeginForm("Upload", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {

      //使用此控件会限制文件大小最大上传4m

        可在web.config中配置<httpRuntime
                executionTimeout= "5400 "
                maxRequestLength= "2048000 " 文件大小
                useFullyQualifiedRedirectUrl= "false "
              />
        <div id="files">
        <input type="file" name="FileUpload" />
        </div>
        <input type="button" id="add" value="增加" />
        <input type="submit" name="Submit" id="Submit" value="上传" />
    }
    <script type="text/javascript">
        var n = 1;
        $("#add").click(function () {
            var filename = "FileUpload" + n;
            $("#files").append("<input type=\"file\" name=\""+filename+"\" />");
            n++;
        });
    </script>

    其他页面自己建立,

    下载<a href="@Url.Action("Download", new { id=Model.ID})">@Model.FileName</a>

  • 相关阅读:
    iOS 中UI控件的各种对齐方式总结
    BLE 广播数据解析
    Objective-C中一种消息处理方法performSelector: withObject:
    ios的@property属性和@synthesize属性
    iOS中的字符串扫描类NSScanner
    iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)
    NSMakeRange基础函数应用
    Objective-C中的占位符,打印BOOL类型数据
    NSUInteger和NSInteger和int
    HDU4870:Rating(DP)
  • 原文地址:https://www.cnblogs.com/kaixing/p/2244634.html
Copyright © 2020-2023  润新知