项目总结——MVC+MongoDB实现文件上传

在做项目的时候我们遇到了视频上传的问题。正式开始项目之前做了一个简单的Demo实现在MVC中视频文件的上

传,考虑到将视频放到MongoDB中上传和读取速度慢的问题,这次我们实现的文件上传是存储的路径,读取的额时候

直接通过路径读取就OK了。

MVC,M指Model,我目前把它理解成三层中的Entity层,进行数据的传递,当然里边也可以放一些业务逻辑的代

码。V,指View层,视图,用于显示界面,C指Controller,用于控制界面的显示。MongoDB是现在非常流行的NoSQL数

据库,具体的介绍前面有几篇博客已经介绍过了,大家可以看一下。

下面看一下代码实现。

Mongo连接数据库,跟我们以前连接数据库的方法一样,如下:


public class DBcon
    {
        public const string _connectionString = "Server=192.168.24.***:27017";

        public const string _vediotest = "Vediotest";
    }

192.168.24.***是要连接的服务器的网址,27017是服务器指定的连接端口。本机地址,直接写端口就可以。

接下来是实现向Mongo中添加数据的方法。

 //上传视频
        public static void AddVedio(VedioTestModels model)
        {
            using (Mongo mg = new Mongo(DBcon._connectionString))
            {
                mg.Connect();
                var db = mg.GetDatabase(DBcon._vediotest);
                var list = db.GetCollection<VedioTestModels>();
                list.Insert(model);
            }
        }

controler中的方法。

//向数据库中存入信息
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Index2(HttpPostedFileBase file, HttpPostedFileBase text,VedioTestModels model)
         {
             if (file.ContentLength > 0)
             {
                 //获得保存路径
                 string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                                 Path.GetFileName(file.FileName));
                 file.SaveAs(filePath);

                 model.vedio = filePath;
                 model.Id = Guid.NewGuid();
                 model.vedioName = "../../Uploads/" + Path.GetFileName(file.FileName);
                 //model.Id=Request["text"];
                 Biz.BizModel.AddVedio(model);
            }
            return View();
        }

view中是以提交表单的方式实现的,向Controler中传递数据。

@using (Html.BeginForm("Index2", "VedioTest", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@*<form action="upload" method="post" enctype="multipart/form-data"> *@
    <form>
     <input type="file" name="file" /><br />
     <input type="text" name="text" /><br />
     <input type="submit" name="Submit" id="Submit"/>
</form>
}

当然在连接mongo之前要开启服务,首先开机mongo,其次开启端口。这个可以通过写批处理文件,单击批处理文

件开启。

开启mongo的代码:mongod --dbpath E:\MongeDBData

开启端口的代码:mongo 127.0.0.1:27017/admin

下面展示一下实现的效果:

(1)选择要上传的文件

(2)查询数据库,数据库中已经加入上传信息

(3)文件已经上传到指定文件加下(Uploads)

时间: 2024-10-11 09:21:58

项目总结——MVC+MongoDB实现文件上传的相关文章

Spring MVC环境中文件上传大小和文件类型限制以及超大文件上传bug问题

    在上一篇文章中,主要介绍了Spirng MVC环境下的正常情况下文件上传功能实现.在实际开发的时候,还会涉及到上传文件大小和类型的限制,接下来就会对Spirng MVC环境下文件上传大小和类型的限制进行介绍,还会讲解到文件上传大小tomcat服务器bug问题及解决方案. 一.文件上传大小限制 这里还是接着上篇文章先介绍Spring MVC下的文件上传大小限制,文件上传大小的限制在springmvc-config.xml中配置文件解析器CommonsMultipartResolver时即可

用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achieve a user-friendly file-uploading experience over the web. It's built as a Javascript plugin for developers looking to incorporate file-uploading int

关于我使用spring mvc框架做文件上传时遇到的问题

非常感谢作者 原文:https://blog.csdn.net/lingirl/article/details/1714806 昨天尝试着用spring mvc框架做文件上传,犯了挺多不该犯的毛病问题1:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException: org.apache.catalin

ASP.NET MVC下使用文件上传

这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新文件夹Uploads,然后新建控制器UploadifyController.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using S

asp.net.mvc 的单文件上传和多文件上传的简单例子

首先打开vs2012,创建空的mvc4项目,名称为MVCStudy,选择基本模板 1)创建项目后,基本结构是这样的 2)建立对应的HomeController,视图index.fileupload.success.error页面 3)控制器源码 using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;using System.Web.Mvc;using Sys

spring mvc中的文件上传

使用commons-fileupload上传文件所需要的架包有:commons-fileupload 和common-io两个架包支持,可以到Apache官网下砸. 在配置文件spring-mvc.xml中配置上传: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> //文件上传最大是多少 <

【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.com/ssslinppp/p/4607043.html (请参考).本文主要讲多文件上传的过程. 主要区别在于控制层代码不同,同时,jsp代码也有相应修改. 2. 添加jar包 commons-fileupload-1.2.2.jar: commons-io-2.0.1.jar: 3. 配置CommonsMul

MVC进行多文件上传

用mvc做多文件的上传和保存到本地,大致流程就是,前台通过form表单提交多文件,Controller接受到文件流,将文件流保存到本地 然后将保存地址 存到数据库中. 将文件通过from提交 <form name="form1" method="post" action="地址" id="form1" multiple="multiple" enctype="multipart/form-d

转:MVC中的文件上传

上传文件与与上传数据区别 上传数据主要指json等简单字符串,上传文件指的是上传word.excel图片等.在上传数据的时候enctype默认为第一个application/x-www-form-urlencoded,而上传数据包含文件的时候要用第二种multipart/form-data 值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认)url编码 multipart/form-data 不对字符编码. 在使用包含文件上传控件的表单时,必