MVC上传文件

引言


做UI的时候,有一个上传Dll文件的功能,这个功能,之前在2.0的时候,只在特定的目录下进行上唇,而3.0要实现的是在任何的地方都可以上传文件,这个时候,我们就需要用到MVC如何上传文件。


实现


1、思路:


一开始我们在网上查到的一些信息,大多是千篇一律的,都是选择文件之后上传,上传用到的东西都是MVC封装好了,还有一部分是EasyUI封装好了的。我们就用现成的就行了。


2、原理:


原理一直以为是一种新的东西,实际上没有什么新的东西,就是IO的东西,上唇的文件给一个特定的文件名称(GUID)和文件的路径,存储在本地的路径下,这个时候,我们就可以通过对本地存储的这个文件读取出来进行操作,跟就是一个IO流。


3、实现代码:


在主页面下index.aspx页面中:


<span style="font-size:18px;">                @using (Html.BeginForm("Upload", "NonQueryProperties", FormMethod.Post, new { enctype = "multipart/form-data" }))
                {
                    <div id="upload" style="width: 400px; display: inline; margin: 5px 5px;">
                        <input class="easyui-linkbutton" name="files" id="files" type="file" multiple="multiple" onchange="fileSelected()" />
                        <label id="lbError">@ViewBag.ErrorMessage</label>
                        <input class="easyui-linkbutton" type="submit" name="submit" value="上传" />
                    </div> 
                } </span>

有个地方一定要注意的是,这是一个form表单,进行提交的时候,用的是Submit。


在NonQueryPropertiesController中的Upload方法中写入函数:


<span style="font-size:18px;">        #region  Upload(HttpPostedFileBase[] fileToUpload) 上传文件 UI系统-邱慕夏-2014-12-23

        [HttpPost]
        public void Upload(IEnumerable files)
        {
            if (files == null)
            {
                //ViewBag.ErrorMessage = "Please select a file!!";
                return;
            }
            string filePath = string.Empty;
            Guid gid = Guid.NewGuid();
            foreach (HttpPostedFileBase file in files)
            {
                //加载到项目目录中的Uploads文件夹下,将文件名称为GUID的形式保存
                filePath = Path.Combine(HttpContext.Server.MapPath("/Uploads/"), gid.ToString() + Path.GetExtension(file.FileName));
                file.SaveAs(filePath);
            }
            //根据路径查找地址之后,进行操作
            LoadEntityDll(filePath);
        }
        #endregion</span>

它会加载后,就可以随意的进行操作了,这个函数可以加载多个文件。


总结


我们看到一些东西总觉得是新的东西,但本质其实就是咱们之前学过的东西,我们就是要在用完了这些“新的”东西之后,重新整理和总结,变成我们知识网中已有的知识的补充,学习就会很轻松。



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。