ASP.NET MVC上传文件

出处:http://www.cnblogs.com/zhouhb/p/3906714.html

最近参考网络资料,学习了ASP.NET MVC如何上传文件。最基本的,没有用jQuery等技术。

1、定义Model

public class TestModel
    {
        [Display(Name = "标题")]
        [Required]
        public string Title
        {
            get;
            set;
        }
        [Display(Name = "内容")]
        [Required]
        [DataType(DataType.MultilineText)]
        public string Content
        {
            get;
            set;
        }
        public string AttachmentPath
        {
            get;
            set;
        }
    }

2、Controller


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

public class TestController : Controller

{

    //

    // GET: /Test/

    public ActionResult Upload()

    {

        return View();

    }

    /// <summary>

    /// 提交方法

    /// </summary>

    /// <param name="tm">模型数据</param>

    /// <param name="file">上传的文件对象,此处的参数名称要与View中的上传标签名称相同</param>

    /// <returns></returns>

    [HttpPost]

    public ActionResult Upload(TestModel tm, HttpPostedFileBase file)

    {

        if (file == null)

        {

            return Content("没有文件!", "text/plain");

        }

        var fileName = Path.Combine(Request.MapPath("~/Upload"), Path.GetFileName(file.FileName));

        try

        {

            file.SaveAs(fileName);

            //tm.AttachmentPath = fileName;//得到全部model信息

            tm.AttachmentPath = "../upload/" + Path.GetFileName(file.FileName);

          //return Content("上传成功!", "text/plain");

            return RedirectToAction("Show",tm);

        }

        catch

        {

            return Content("上传异常 !", "text/plain");

        }

    }

    public ActionResult Show(TestModel tm)

    {

        return View(tm);

    }

}

3、View

3.1 Upload.cshtml

@model MvcApplication1.Models.TestModel

@{

    ViewBag.Title = "Upload";

}

<!DOCTYPE html>

<html>

<head>

    <title>普通上传</title>

</head>

<body>

    @*enctype= "multipart/form-data"是必需有的,否则action接收不到相应的file*@

    @using (Html.BeginForm("Upload", "Test", FormMethod.Post, new { enctype = "multipart/form-data" }))

    {

        @Html.LabelFor(mod => mod.Title)

        <br />

        @Html.EditorFor(mod => mod.Title)

        <br />     <br />

        @Html.LabelFor(mod => mod.Content)

        <br />

        @Html.EditorFor(mod => mod.Content)

        <br />

        <span>上传文件</span>

        <br />

        <input type="file" name="file" />

        <br />

        <br />

        <input id="ButtonUpload" type="submit" value="提交" />

    }

</body>

</html>

3.2 Show.cshtml

@model MvcApplication1.Models.TestModel

@{

    ViewBag.Title = "Show";

}

<h2>Show</h2>

@Html.LabelFor(mod => mod.Title)

<br />

@Html.EditorFor(mod => mod.Title)

<br />     <br />

@Html.LabelFor(mod => mod.Content)

<br />

@Html.EditorFor(mod => Model.Content)

<br />

图片:

<img src="@Model.AttachmentPath" alt="img" />

时间: 2024-12-16 23:02:17

ASP.NET MVC上传文件的相关文章

ASP.NET MVC 上传文件

1.首先创建一控制器文件UpFileController.cs: using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc; namespace Mvc4Study.Controllers{ public class UpFileController : Controller { // // GET: /UpFile/ public ActionRes

asp.net mvc上传头像加剪裁功能

正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery.Jcrop 后台是asp.net mvc 4 核心的js调用代码是crop.js和helper文件夹下的ImgHandler.cs 效果图 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /> <link href=

FLASH实现ASP.NET MVC上传---.NET篇

其实在.NET MVC中保存图片最大的问题不是如何保存图片.而是身份验证. 为什么这样说,在firefox和Chrome中最大的问题是,flash作为插件出现.从而形成了两个终端. 在这种情况下,不同的useragent使用了不同的Cookie. SessionID也就不同了,所以作为Session来验证用户的方式,显得有些不太可行. 那么,看下思路 修改SessionID的代码,在Global.asax中 protected void Application_BeginRequest(obje

关于MVC 上传文件

前台代码如下 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>Index</title> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script t

asp.net 客户端上传文件全路径获取方法

asp.net  获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他方法 如下提供两种方法: 方法1:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可. 方法2: function getPath() { //获取file 控件对象 var obj =

spring mvc上传文件的简单例子总结及注意事项

1.创建maven项目         在pom.xml里面引入该依赖的jar包,pom.xm的代码如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven

MVC上传文件

引言 做UI的时候,有一个上传Dll文件的功能,这个功能,之前在2.0的时候,只在特定的目录下进行上唇,而3.0要实现的是在任何的地方都可以上传文件,这个时候,我们就需要用到MVC如何上传文件. 实现 1.思路: 一开始我们在网上查到的一些信息,大多是千篇一律的,都是选择文件之后上传,上传用到的东西都是MVC封装好了,还有一部分是EasyUI封装好了的.我们就用现成的就行了. 2.原理: 原理一直以为是一种新的东西,实际上没有什么新的东西,就是IO的东西,上唇的文件给一个特定的文件名称(GUID

Spring MVC上传文件

1.applicationContext.xml 1 <bean id="multipartResolver" 2 class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <property name="maxUploadSize" value="104857600" /> 4 <property

asp.net FileUpload上传文件夹并检测所有子文件

1.在FileUpload控件添加一个属性 webkitdirectory=""就可以上传文件夹了 <asp:FileUpload ID="FileUpload1" runat="server" webkitdirectory="" /> 2.检测文件夹下所有子文件 string DirectoryName = FileUpload1.PostedFile.FileName; string path = Serve