一起谈.NET技术,探索Asp.net mvc 的文件上传(由浅入深)

简介:   代码下载:http://files.cnblogs.com/n-pei/mvcfileupload.zip  最近因为TeamVideo需要用到视频和图片上传功能,所以试着Google了很多资料,和大家分享下。

  代码下载:http://files.cnblogs.com/n-pei/mvcfileupload.zip

  最近因为TeamVideo需要用到视频和图片上传功能,所以试着Google了很多资料,和大家分享下。

  1.最基本的文件上传

clip_image001

  在View界面通过Form把数据POST到控制端(Controller),Controller把文件存储到服务器,再Redirect到其他页面。

  View部分的代码:

clip_image003

  Controller部分需要判断是否有Post过来文件,有文件就保存,再重定向到index页面。

clip_image005

  上面的例子是最简单的,下一步我们考虑给它加上一个jQuery的UI,让上传文件时的样子变成如下:

clip_image006

  要达到这个效果,首先需要下载jQuery UI的几个插件。

clip_image007

  在模板中添加这些脚本:

clip_image009

  把上面实现的简单的文件上传放到一个DIV中,我们需要实现的功能是当鼠标点击某个按钮时,这个DIV会弹出来。

clip_image011

  最后是DIV弹出的脚本:

clip_image012

  接下来我们考虑把图片上传到服务器后再让它显示在当前页面中。显示的效果如下:

clip_image014

  也就是说我们在上传图片到服务器端后,需要得到此图片的创建时间,大小名称等。

clip_image016

  FileRepository把文件的信息放到一个List中:

clip_image017  通过Controller部分把这个List传递给View。View部分的代码请参考附件。对于图片的存储,我下一步想着把它存储在数据库中。首先是创建表结构:

clip_image018

  使用ADO.NET Data Model来存储数据,所以我们需要创建一个edmx文件。

clip_image019

  保存到图片到数据库中的Controller部分:

clip_image020

  View部分代码:

clip_image022

  过程如下图:

clip_image024

  这里需要一个辅助类来帮助输入文本的Post。你可以在下载的代码中看到。上传图片并保存到数据库中,我们还需要来把图片显示出来,这个相对来说就比较麻烦了。搜索了很久才找到的方法如下:

clip_image025

  保存图片到数据库后的查询结果:

clip_image027

  目前我还不知道如何把一个List的图片显示出来。希望谁能够提供一个好的解决方案。传统的方法来存储文件(图片)上面的介绍已经很多了。如何使用AJAX方法来存储文件到服务器呢?我搜索了下,比较多的是使用jQuery Form这个插件来实现的。

clip_image029

  你需要去下载jQuery Form这个插件,放到你的Script文件夹中。并在Master模板中添加。当你点击Button时,创建一个Form并使用AJAX方式POST到服务器端保存。保存方式就不说了,下面是使用jQuery Form的JS代码:

clip_image031

  除了使用jQuery form这个插件还有其他的AJAX方式实现文件的上传:

  我举两个例子:

  1. jQuery & Flash AJAX上传文件

  代码地址:http://swfupload.googlecode.com/

  主要是通过Flash和js的交互用flash程序来post数据到后台的Controller。除了flash部分,其它的和上面介绍的代码大同小异。我会在代码包里放上这部分的代码,供大家下载。

  效果:

clip_image032

  2. 纯jQueryAJAX上传文件(http://valums.com/ajax-upload/)

  这个推荐大家看一下。

clip_image033

  看这边文章的同仁们,周末愉快,呵呵。

  参考资料:

  http://weblogs.asp.net/imranbaloch/archive/2010/04/03/image-preview-in-asp-net-mvc.aspx

  http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx  

  http://www.highoncoding.com/Articles/689_Uploading_and_Displaying_Files_Using_ASP_NET_MVC_Framework.aspx

  http://www.mikesdotnetting.com/Article/125/ASP.NET-MVC-Uploading-and-Downloading-Files

  http://valums.com/ajax-upload/

目录
相关文章
|
8月前
|
前端开发 Java 开发者
MVC 架构模式技术详解与实践
本文档旨在全面解析软件工程中经典且至关重要的 MVC(Model-View-Controller) 架构模式。内容将深入探讨 MVC 的核心思想、三大组件的职责与交互关系、其优势与劣势,并重点分析其在现代 Web 开发中的具体实现,特别是以 Spring MVC 框架为例,详解其请求处理流程、核心组件及基本开发实践。通过本文档,读者将能够深刻理解 MVC 的设计哲学,并掌握基于该模式进行 Web 应用开发的能力。
1692 1
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
409 7
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
252 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
355 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
339 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
491 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
785 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
457 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
581 0