MVC上传文件的方法
类别:编程学习 浏览量:16778
时间:2014-3-23 MVC上传文件的方法
MVC上传文件的方法一、MVC中如何上传文件
1、在Web Forms中,当你把一个FileUpload控件拖到设计器中,你或许没有注意到在生成的HTML中会在form标签中加入一条额外属性enctype="multipart/form-data". 而FileUpload控件本身会生成为<input type=”file” />,在MVC的view里,下列HTML可以做到同样效果
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="FileUpload1" /><br />
<input type="submit" name="Submit" id="Submit" value="Upload" />
</form>
注意form标签已经包括了enctype标签,而method属性则设为”post”,这样设置并不多于因为默认的提交时通过HTTP get方式进行
2、在Asp.net MVC中Controller类中,Request对象作为HttpRequestBase类型的一个属性存在。HttpReuqestBase其实是HTTP请求的一个封装,暴漏了很多属性,包括Files collection(其实是HttpFileCollectionBase的集合),在集合中的每一个元素都是HttpPostedFileBase的集合,扩展方法是用于确保上传的文件是否存在。实际上,这和FileUpload.HasFile()方法的工作原理一致。
二、MVC上传文件的实例:
1、视图文件
前台引擎采用Razor
上传页View:
@model System.Web.HttpContextBase
@{
ViewBag.Title = "上传文件";
}
<h2>上传文件</h2>
<br />
<br />
@*new { enctype = "multipart/form-data" }比不可少,否则上传文件不会成功 *@
@using (Html.BeginForm("Upload", "UploadFile", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<text>选择上传文件:</text><input name="file" type="file" id="file" />
<br />
<br />
<input type="submit" name="Upload" value="Upload" />
}
2、后台UploadFileController
[HttpPost]
public ActionResult Upload(FormCollection form)
{
if (Request.Files.Count == 0)
{
//Request.Files.Count 文件数为0上传不成功
Return View();
}
var file = Request.Files[0];
if (file.ContentLength == 0)
{
//文件大小大(以字节为单位)为0时,做一些操作
Return View();
}
else
{
//文件大小不为0
HttpPostedFileBase file = Request.Files[0];
//保存成自己的文件全路径,newfile就是你上传后保存的文件,
//服务器上的UpLoadFile文件夹必须有读写权限
file.SaveAs(Server.MapPath(@"UploadFile\\newfile"));
}
newFile = DateTime.Now.ToString("yyyyMMddHHmmss") + ".sl";
return View();
}
您可能感兴趣
- ASP.NET实现FTP上传文件
- java上传图片压缩包(js实现多张图片打包成zip)
- php创建多个文件(PHP实现单文件、多个单文件、多文件上传函数的封装示例)
- 搭建ftp服务器狗无法访问(护卫神主机大师创建网站后FTP无法上传的解决办法)
- html5的canvas图形绘制技术(导出HTML5 Canvas图片并上传服务器功能)
- vue用手动上传图片(vue上传图片文件的多种实现方法)
- php设置上传文件代码(PHP大文件切割上传并带进度条功能示例)
- elementui自定义坐标(element-ui 上传图片后标注坐标点)
- 怎么用织梦上传源码(如何把织梦dedecms数据生成json)
- dedecms迁移data验证码不显示(dedecms织梦上传图片302Error错误的解决方法)
- laravel新增数据表(laravel实现上传图片的两种方式小结)
- canvas图片裁剪(使用canvas压缩图片上传的方法示例)
- 云服务器怎么上传16g文件(云服务器怎么上传下载文件?)
- docker配置阿里云镜像(Docker镜像的制作,上传,拉取和部署操作利用阿里云)
- asp.net使用swfupload上传
- vue3 动态生成组件(如何在vue3.0+中使用tinymce及实现多图上传文件上传公式编辑功能)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
- 你怎么忘了是说先爱我(你怎么忘了如何爱我)
- 做技术难吗(技术难不难)
- 林心如是谁(林心如是谁演的)
- 泰国安全吗(泰国安全吗2023)
热门推荐
- SQL SERVER 数据库主键
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
- 常见的php五大运行模式详解(php设计模式之职责链模式定义与用法经典示例)
- oracle RMAN CONFIGURE配置项
- dockerpull的镜像位置(解决docker pull镜像报错的问题)
- dedecms文章内容页调用自定义字段(DEDECMS教程:上/下一篇文章标题长度的截取方法)
- 自建FTP服务器并远程外网访问,花生棒自带端口映射3步搞定(自建FTP服务器并远程外网访问,花生棒自带端口映射3步搞定)
- python用列表实现一个定时器(python 定时器,实现每天凌晨3点执行的方法)
- 云服务器需要都有什么技术(浅谈云服务器配置应该如何选择?)
- python如何遍历列表并提取(Python同步遍历多个列表的示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9