`

MVC学习之七_____上传多张图片

    博客分类:
  • MVC4
mvc 
阅读更多
图片上传控件:WebUploader

后台代码:
public ActionResult Index()
        {
            return View();
        }

        public ActionResult UpLoadProcess(string id, string name, string type, string lastModifiedDate, int size, HttpPostedFileBase file)
        {
            string filePathName = string.Empty;
            // 获取图片存放的本地路径
            string localPath = Path.Combine(HttpRuntime.AppDomainAppPath, "Upload");
            //说明没有拿到图片信息
            if (Request.Files.Count == 0)
            {
                return Json(new { jsonrpc = 2.0, error = new { code = 102, message = "保存失败" }, id = "id" });
            }

            //获取文件的扩展名
            string ex = Path.GetExtension(file.FileName);
            //重新给图片命名
            filePathName = Guid.NewGuid().ToString("N") + ex;
            //本地地址是否存在文件夹,如果不存在则创建
            if (!System.IO.Directory.Exists(localPath))
            {
                System.IO.Directory.CreateDirectory(localPath);
            }
            //保存上传的图片信息
            file.SaveAs(Path.Combine(localPath, filePathName));

            return Json(new
            {
                jsonrpc = "2.0",
                id = id,
                filePath = "/Upload/" + filePathName
            });

        }


模板代码:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>多图片上传页</title>

    <script type="text/javascript" src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="~/Scripts/webuploader.js"></script>
    <link rel="stylesheet" href="~/Content/Upload/webuploader.css">
    <link rel="stylesheet" href="~/Content/bootstrap.min.css">
    <link rel="stylesheet" href="~/Content/Upload/demo.css">
    <link rel="stylesheet" href="~/Content/Upload/style.css">
    <link rel="stylesheet" href="~/Content/Upload/font-awesome.css">
</head>
<body>
    <div>
        <table class="tc_table_cp" border="0">
            <tr>
                <td width="104">图片上传:</td>
                <td colspan="3">
                    <div id="fileList">

                    </div><!--存放图片的容器-->
                    <div class="cp_img_jia" id="filePicker"></div>
                    <!--这是上传按钮-->
                </td>
            </tr>
            <tr>
                <td width="104"></td>
                <td colspan="3">
                    <button id="ctlBtn" class="btn btn-default">开始上传</button>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

<script type="text/javascript">
	var applicationPath = window.applicationPath === "" ? "" : window.applicationPath || "../";
	$(function() {
		var $ = jQuery,
			$list = $('#fileList'),
			// 优化retina, 在retina下这个值是2
			ratio = window.devicePixelRatio || 1,
			// 缩略图大小
			thumbnailWidth = 90 * ratio,
			thumbnailHeight = 90 * ratio,

			// Web Uploader实例
			uploader;
		uploader = WebUploader.create({
			// 选完文件后,是否自动上传。
			auto: false,

			disableGlobalDnd: true,
			// swf文件路径
			swf: applicationPath + '/Script/Uploader.swf',

			// 文件接收服务端。
            server: applicationPath + '/Upload/UpLoadProcess',

			// 选择文件的按钮。可选。
			// 内部根据当前运行是创建,可能是input元素,也可能是flash.
			pick: '#filePicker',

			//只允许选择图片
			accept: {
				title: 'Images',
				extensions: 'gif,jpg,jpeg,bmp,png',
				mimeTypes: 'image/*'
			}
		});


		// 当有文件添加进来的时候
		uploader.on('fileQueued', function(file) {
			var $li = $(
					'<div id="' + file.id + '" class="cp_img">' +
					'<img>' +
					'<div class="cp_img_jian"></div></div>'
				),
				$img = $li.find('img');

			// $list为容器jQuery实例
			$list.append($li);

			// 创建缩略图
			// 如果为非图片文件,可以不用调用此方法。
			// thumbnailWidth x thumbnailHeight 为 100 x 100
			uploader.makeThumb(file, function(error, src) {
				if(error) {
					$img.replaceWith('<span>不能预览</span>');
					return;
				}

				$img.attr('src', src);
			}, thumbnailWidth, thumbnailHeight);
		});

		// 文件上传过程中创建进度条实时显示。
		uploader.on('uploadProgress', function(file, percentage) {
			var $li = $('#' + file.id),
				$percent = $li.find('.progress span');

			// 避免重复创建
			if(!$percent.length) {
				$percent = $('<p class="progress"><span></span></p>')
					.appendTo($li)
					.find('span');
			}

			$percent.css('width', percentage * 100 + '%');
		});

		// 文件上传成功,给item添加成功class, 用样式标记上传成功。
		uploader.on('uploadSuccess', function(file, response) {

            $('#' + file.id).addClass('upload-state-done');
            //alert("保存成功");   
		});

		// 文件上传失败,显示上传出错。
		uploader.on('uploadError', function(file) {
			var $li = $('#' + file.id),
				$error = $li.find('div.error');

			// 避免重复创建
			if(!$error.length) {
				$error = $('<div class="error"></div>').appendTo($li);
			}

			$error.text('上传失败');
		});

		// 完成上传完了,成功或者失败,先删除进度条。
		uploader.on('uploadComplete', function(file) {
			$('#' + file.id).find('.progress').remove();
		});

		//所有文件上传完毕
		uploader.on("uploadFinished", function() {
			//提交表单

		});

		//开始上传
		$("#ctlBtn").click(function() {
            uploader.upload();
		});

		//显示删除按钮
		$(".cp_img").live("mouseover", function() {
			$(this).children(".cp_img_jian").css('display', 'block');

		});
		//隐藏删除按钮
		$(".cp_img").live("mouseout", function() {
			$(this).children(".cp_img_jian").css('display', 'none');

        });

		//执行删除方法
		$list.on("click", ".cp_img_jian", function() {
			var Id = $(this).parent().attr("id");
			uploader.removeFile(uploader.getFile(Id, true));
			$(this).parent().remove();
		});

	});
</script>




此外还用到了模板中引用的css和js代码,详见附件
备注:css中关于图片的引用请根据自己的路径,修改图片地址

参考:http://www.cnblogs.com/ismars/p/4176912.html
稍有改动,如果对此控件有兴趣可到官方了解
分享到:
评论

相关推荐

    ASP.NET MVC实现图片上传、图片预览显示

    本文详细介绍了如何在*** MVC框架中实现图片上传和预览显示的整个过程,这包括前端页面设计、后端控制器和模型的构建、以及与数据库的交互处理。以下是对本文描述的知识点详细说明。 1. 图片上传与存储 *** MVC应用...

    java代码实现多张图片单张图片文件上传_DEMO_图片上传_

    本DEMO主要展示了如何实现单张或多张图片文件的上传功能。以下将详细讲解涉及的知识点。 1. **文件I/O操作**:在Java中,进行文件上传首先需要处理的是本地文件的读取。`java.io.File`类用于表示文件对象,可以获取...

    ASP.NET MVC 4 图片上传UploadDemo

    综上所述,ASP.NET MVC 4的图片上传功能涉及到前端表单设计、后端控制器处理、模型绑定、文件验证与存储、数据库操作、视图展示以及错误处理等多个环节。这个UploadDemo项目为学习者提供了完整的实践示例,帮助他们...

    MVC学习之——20 Recipes MVC

    - **功能描述**:用户可以在应用程序中上传文件,如图片或文档。 - **技术要点**:处理HTTP POST请求中的文件数据;存储文件到服务器或外部存储服务;确保文件类型和大小的安全性。 以上内容基于给定的信息进行了...

    springmvc_jpbm5_document.zip_spring mvc

    6. **dwz+jquery+fileupload+springmvc实现文件上传及图片预览**:这是更复杂的应用,结合了DWZ(一个前端框架)、jQuery的Fileupload插件和Spring MVC,实现了文件上传并提供实时图片预览的功能。 7. **springMVC+...

    .net mvc5+EF6+bootstrap+fileinput,实现增删改查,多图片上传管理,纯干货zzkMvc.zip

    在.NET MVC5和Bootstrap的基础上,fileinput插件被整合进来,实现了多图片上传的功能,这对于内容丰富的Web应用如博客、电商平台等尤其重要。 在项目zzkMvc中,我们可以看到一系列的文件和文件夹,包括控制器...

    NET_MVC_PDF+Word+Excel+PPT文档在线预览.rar

    ASP.NET MVC是一个强大的Web开发框架,它为构建可维护、高性能的应用程序提供了丰富的特性和工具。在本示例中,“NET_MVC_PDF+Word+Excel+PPT文档在线预览.rar”是一个压缩包,其中包含了一个源码Demo,用于在ASP...

    mvc4上传图片

    在ASP.NET MVC 4框架中,图片上传是一个常见的功能需求,尤其在开发涉及用户交互的网站时,如社交网络、电子商务或个人博客等。本文将深入探讨如何在MVC4中实现图片上传,并结合给定的文件信息进行解析。 1. **MVC4...

    MVC3 文件上传

    在.NET MVC框架中,MVC3是一个非常重要的版本,它为开发者提供了许多增强的功能和改进。文件上传是Web应用程序中常见的需求,特别是在处理用户提交的图片、文档...希望这个小DEMO对你在学习MVC3文件上传方面有所帮助。

    asp.net mvc+Bootstrap Fileinput框架实现的文件上传

    ASP.NET MVC 是微软开发的一款强大的Web应用程序框架,它结合了模型-视图-控制器(MVC)设计模式,为开发者提供了构建可...通过学习和实践,开发者可以提升自己的Web应用开发能力,实现更加高效、美观的文件上传功能。

    PHP+MVC_blog.7z

    【PHP+MVC博客系统详解】 ...综上所述,"PHP+MVC_blog.7z"是一个综合性的Web开发实践,涵盖了PHP编程、MVC架构、数据库操作、文件上传和分页显示等多个核心知识点,对于学习和理解Web开发流程具有很高的参考价值。

    mvc4 html5 拍照上传

    总的来说,"mvc4 html5 拍照上传"这个项目是一个很好的学习起点,涵盖了前端交互、后端处理和数据传输等多个方面的知识。通过实践,初学者可以深入理解ASP.NET MVC4和HTML5的综合运用,为后续的Web开发打下坚实基础...

    CKEDITOR MVC4 富文本编辑器 DEMO 图片上传

    通过学习这个DEMO,你可以掌握如何在ASP.NET MVC4应用中集成CKEDITOR,实现富文本编辑及图片上传功能,同时理解客户端与服务器端的交互过程。这个过程涉及到了前端JavaScript库的使用、后端控制器的编写以及模型绑定...

    基于MVC的HTML5+Canvas手机拍照上传

    对于标签中提到的"MVC",在服务器端实现也可能遵循类似的模式,比如在ASP.NET MVC框架中,可能会有一个控制器接收并处理上传请求,模型负责存储图片,视图则可能是一个反馈结果的页面。 文件名为"MvcPhotograph"的...

    ASP.NET MVC3.0图片文件上传及管理程序-经典源码

    在“ASP.NET MVC3.0图片文件上传及管理程序”中,我们可以学习到如何在ASP.NET MVC3.0环境中实现文件上传和管理功能,特别是针对图片文件。 在ASP.NET MVC中,文件上传通常涉及到以下关键技术点: 1. **表单提交**...

    简单的学习asp.net MVC 项目

    MvcWebPhoto项目中的控制器类可能会有如PhotosController,其中包含处理照片相关操作的方法,如Index(显示照片列表)、Create(上传新照片)、Edit(编辑照片)、Delete(删除照片)等。 4. **路由(Routing)**: ...

    mvc 2.0 实例源码

    本套示例包括:本套实例是采用vs2010+mvc2+ado.net entity作的,带有VS2010自带的SQLEX建的数据库,和源码及图片。 在下一次里,我们将公示附有最新在线编辑器CKeditor3.02的示例,并且ckeditor将会集成最新的...

    MVC上传图片源码 MVCUploadPictures.rar

    MVC上传图片源码 源码描述: 一、源码特点 mvc伪静态 mvc图片上传,非常简单的功能,适合初学者学习使用,欢迎下载 二、注意事项 1、开发环境为Visual Studio 2010,使用.net 4.0开发。

    MVC上传图片(手机上传图片)VS2012可打开

    在ASP.NET MVC框架中,实现图片上传功能,特别是支持手机上传,是常见的需求。这个项目“MVC上传图片(手机上传图片)VS2012可打开”提供了一个实用的示例,帮助开发者掌握如何在VS2012环境下创建这样一个功能。下面...

Global site tag (gtag.js) - Google Analytics