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();
}
您可能感兴趣
- vue图片怎么上传服务器(vue-cropper组件实现图片切割上传)
- python程序怎么打包(Python 实现文件打包、上传与校验的方法)
- 搭建ftp服务器狗无法访问(护卫神主机大师创建网站后FTP无法上传的解决办法)
- dedecms模板未生成(dedecms前台会员无法上传图片类型的解决方法)
- html5实现上传图片预览
- php表单上传文件功能(PHP单文件上传原理及上传函数的封装操作示例)
- docker快速打包部署脚本(使用脚本一键打包并上传docker镜像的实现代码)
- linux安装nginx启动页面访问不到(apache,nginx上传目录无执行权限的设置方法)
- dedecms中修改图片(让dedecms织梦后台支持上传bmp格式的图片的教程)
- nodejs部署上传文件(node.js使用express-fileupload中间件实现文件上传)
- 宝塔面板怎么导入网站(宝塔面板如何设置文件上传大小)
- docker 更新容器到镜像(Docker容器如何更新打包并上传到阿里云)
- js怎么上传压缩图片(如何用JS有效的压缩图片)
- dedecms缩略图优化教程(织梦DedeCMS V5.7缩略图站内上传修正)
- js 图片编辑处理库(javascript input图片上传及预览,FileReader预览图片)
- dedecms上传附件大小限制(dedecms删除文章同时也删除附件的修改方法)
- 美国数十万加仑牛奶倒进下水道,世界会重演1929年的大萧条吗(美国数十万加仑牛奶倒进下水道)
- 美国数十万加仑牛奶倒入下水道,贫民区食不果腹,历史再次重演(美国数十万加仑牛奶倒入下水道)
- 美国倒掉数十万加仑牛奶 上热搜第一,这一幕似曾相识(美国倒掉数十万加仑牛奶)
- 深度 倒牛奶 这一幕为何又在美国上演(深度倒牛奶)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
热门推荐
- 阿里云如何部署自己的服务器(如何快速搭建一个阿里云服务器)
- php中变量定义规则(PHP中__set实例用法和基础讲解)
- nginx启动报错连接失败(宝塔面板Nginx环境中出现404 Not Found的解决方法)
- react hooks详解(React Hooks使用常见的坑)
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- python ssh 连接(python pexpect ssh 远程登录服务器的方法)
- dedecms添加底部链接(详解如何修改织梦模板dedeCMS友情链接为下拉式)
- php对象模型(PHP数据对象映射模式实例分析)
- 用mysql编写test数据库(MySQL制作具有千万条测试数据的测试库的方法)
- mysql大表查询优化方案(mysql查询优化之100万条数据的一张表优化方案)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9