超简单实现MVC上传文件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a_lllll/article/details/89916360

超简单实现MVC上传文件


Action方法不能重载,【注意】方法名相同的最多允许出现两次(这两次指的是两种提交方式:GET和POST)


上传文件的参数类型为:HttpPostedFileBase
【注意】上传文件的form表单中一定要加:enctype=“multipart/form-data”


控制器代码

		[HttpGet]
        public ActionResult UpLoadFile()
        {
            return View();
        }
        [HttpPost]
        public ActionResult UpLoadFile(HttpPostedFileBase file)
        {
            //注意:下面的UpLoad是自己创建的一个文件夹
            var fileName = file.FileName;
            //方法一:
            //var filePath = Server.MapPath(string.Format("~/{0}", "UpLoad"));
            //file.SaveAs(Path.Combine(filePath, fileName));
            //方法二:
            file.SaveAs(Server.MapPath("~/UpLoad/" + fileName));
            return View();
        }

视图层代码

		<form action="~/UploadFile/UploadFile" method="post" enctype="multipart/form-data">
            <input type="file" name="file" /><br />
            <input type="submit" value="提交" />
        </form>
展开阅读全文

mvc ftp上传文件求助

09-12

在最近项目中的一个ftp使用上传文件 在上传的时候我用HttpPostedFileBase对象 想得到文件的客服端路径,就像是asp.net中的fileupload控件一样 能直接的到 ,现在的话 HttpPostedFileBase里面没有的文件在客服端路径的属性rn所以用HttpPostedFileBase 的FileName属性 ,但是在ie先却能得到他的路径 在chrom或者是别的浏览器却的不到所以老是郁闷rn,求大家指教,想下面的这这个方法 我该怎么传参,小弟想的是应该传文件在客服端的路径rn[code=C#]rn private void Upload(string filename)rn rn string ftpServerIP = "ftp地址";rn FileInfo fileInf = new FileInfo(filename);rn string uri = "ftp地址" + fileInf.Name;rn FtpWebRequest reqFTP;rn // 根据uri创建FtpWebRequest对象rn reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/web/" + fileInf.Name));rn // ftp用户名和密码rn reqFTP.Credentials = new NetworkCredential("用户名", "密码");rn // 默认为true,连接不会被关闭rn // 在一个命令之后被执行rn reqFTP.KeepAlive = false;rn // 指定执行什么命令rn reqFTP.Method = WebRequestMethods.Ftp.UploadFile;rn // 指定数据传输类型rn reqFTP.UseBinary = true;rn // 上传文件时通知服务器文件的大小rn reqFTP.ContentLength = fileInf.Length;rn // 缓冲大小设置为2kbrn int buffLength = 2048;rn byte[] buff = new byte[buffLength];rn int contentLen;rn // 打开一个文件流 (System.IO.FileStream) 去读上传的文件rn FileStream fs = fileInf.OpenRead();rn tryrn rn // 把上传的文件写入流rn Stream strm = reqFTP.GetRequestStream();rn // 每次读文件流的2kbrn contentLen = fs.Read(buff, 0, buffLength);rn // 流内容没有结束rn while (contentLen != 0)rn rn // 把内容从file stream 写入 upload streamrn strm.Write(buff, 0, contentLen);rn contentLen = fs.Read(buff, 0, buffLength);rn rn // 关闭两个流rn strm.Close();rn fs.Close();rn Console.Write("上传成功");rn rn catch (Exception ex)rn rnrn Console.Write(ex.Message);rn rn rn[/code]rn我在Controller里是这样调用的rn[code=C#]rnpublic ActionResult Index()rn rn return View();rn rn [HttpPost]rn public ActionResult Index(FormCollection fc)rn rn HttpPostedFileBase file = Request.Files[0];rn Upload(file.FileName);rn return View();rn rn[/code]rn页面代码如下:rn[code=HTML]rn rn rn rn rn[/code]rnrn以上为在下遇见,还望高手能指教下 我这是上传大文件 所以用到了 流 还望指教 或给出代码 ,万分感激 论坛

没有更多推荐了,返回首页