public ActionResult FileUpload()
        {
            Users users = new Users();
            users = (Users)Session["Users"];
            HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;//获取上传的文件
            if (files.Count == 0)//判断文件是否为空
                return Json("Faild", JsonRequestBehavior.AllowGet);
            //MD5 md5Hasher = new MD5CryptoServiceProvider();
            /*计算指定Stream对象的哈希值*/
            //byte[] arrbytHashValue = md5Hasher.ComputeHash(files[0].InputStream);
            /*由以连字符分隔的十六进制对构成的String,其中每一对表示value中对应的元素;例如“F-2C-4A”*/
            //string strHashData = BitConverter.ToString(arrbytHashValue).Replace("-", "");
            var FileName = files[0].FileName.Substring(0,files[0].FileName.IndexOf('.'));//获取文件名称
            var FileEextension = Path.GetExtension(files[0].FileName);//获取文件后缀名
            var uploadDate = DateTime.Now/*.ToString("yyyyMMddHHmm")*/;//获取文件上传时间
            var addres = "";
            //判断文件类型存入不同文件夹
            if(FileEextension == ".doc"||FileEextension == ".docx")
            {
                addres = "DOC";
            }
            if (FileEextension == ".xls" || FileEextension == ".xlsx")
            {
                addres = "Excel";
            }
            if (FileEextension == ".ppt" || FileEextension == ".pptx")
            {
                addres = "PPT";
            }
            if (FileEextension == ".pdf")
            {
                addres = "PDF";
            }
            string virtualPath = string.Format("/ResourceFile/{0}/{1}{2}", addres, FileName, FileEextension);//当前文件相对路径
            string fullFileName = Server.MapPath(virtualPath);//文件的绝对路径
            //创建文件夹,保存文件
            string path = Path.GetDirectoryName(fullFileName);
            Directory.CreateDirectory(path);//判断是否有这个路径,没有就创建
           
            string fileName = files[0].FileName.Substring(files[0].FileName.LastIndexOf("\\") + 1, files[0].FileName.Length - files[0].FileName.LastIndexOf("\\") - 1);
            var fileSize = GetFileSize(files[0].ContentLength);
            if (fileSize == null)
            {
                return null;
            }
            if (!System.IO.File.Exists(fullFileName))
            {
                files[0].SaveAs(fullFileName);
            }
            //添加信息
            Resource resource = new Resource();
            resource.UsersId = users.Id;
            resource.Title = FileName;
            resource.Extensions = FileEextension.Substring(1,FileEextension.Length-1);
            resource.UploadTime = uploadDate;
            resource.FileSize =Convert.ToInt32(fileSize.Substring(0,fileSize.Length-2));
            resource.UploadStage = 1;
            int i = _IExplorerRespository.Add(resource);
            if (i > 0)
            {
                return Json(new { FileName = fileName, FilePath = virtualPath, FileSize = fileSize }, "text/html", JsonRequestBehavior.AllowGet);
            }
            else
            {
                FileInfo f = new FileInfo(FileName+ FileEextension);
                DirectoryInfo dir = f.Directory;
                foreach (FileInfo item in dir.GetFiles())
                {
                    try
                    {
                        //删除文件
                        if(System.IO.File.Exists(fullFileName))
                        {
                            FileInfo fi = new FileInfo(fullFileName);
                            if(fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
                            {
                                fi.Attributes = FileAttributes.Normal;
                            }
                            System.IO.File.Delete(fullFileName);
                        }
                    }
                    catch
                    {
                       
                    }
                }
            }
        }

文件转载加改编

MVC文件的上传、删除的更多相关文章

  1. ASP.NET MVC 文件异步上传问题处理

    最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了个小问题,通过查找相关渠道解决了,在这里把这个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助.我 ...

  2. ASP.NET MVC 4 批量上传文件

    上传文件的经典写法: <form id="uploadform" action="/Home/UploadFile" method="post& ...

  3. ASP.NET MVC实现Excel文件的上传下载

    在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...

  4. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  5. thinkphp对文件的上传,删除,下载操作

    工作需要,整理一下最近对php的学习经验,希望能对自己有帮助或者能帮助那些需要帮助的人. thinkphp对文件的操作,相对来说比较简单,因为tp封装好了一个上传类Upload.class.php 废 ...

  6. Spring MVC 实现文件的上传和下载 (八)

    完整的项目案例: springmvc.zip 目录 SpringMVC 中,文件的上传,是通过 MultipartResolver 实现的. 所以,如果要实现文件的上传,只要在 spring-mvc. ...

  7. SFTP多文件上传,删除

    公司项目中需要把项目的相关文件上传到服务器的tomcat中,需要在项目中进行以下几步操作: 1.添加项目信息,包括名称,描述,服务器ip,sftp的用户名,密码,端口号等,存在配置,部署,删除等操作 ...

  8. spring mvc ajax异步文件的上传和普通文件上传

    表单提交方式文件上传和ajax异步文件上传 一:首先是我在spring mvc下的表单提交方式上传 ssm的包配置我就不一一详细列出来了,但是上传的包我还是列出来 这一段我也不知道怎么给大家讲解就是直 ...

  9. Spring MVC 实现文件的上传和下载

    前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:“用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流”.我回复他说:“使用Spring MVC框架可以做到这一点,因为Spri ...

随机推荐

  1. [Swift]LeetCode1002. 查找常用字符 | Find Common Characters

    Given an array A of strings made only from lowercase letters, return a list of all characters that s ...

  2. 修复FFMPEG 复用 PAT、PMT发送间隔小于25ms的错误

    目录 分析ffmpeg源码 分析问题 修改源码解决问题 分析ffmpeg源码 分析问题 mpegtsenc.c 找到发送PAT.PMT的函数 /* send SDT, PAT and PMT tabl ...

  3. python的基本数据类型(一)

    整型和浮点型 一.整型:(int)通俗来说就是我们数学中整十整百的数字 1, 2, 3, 4.......9,10 -1, -2,-3........ 在其他的编程语言中(比如Java.C这一类的语言 ...

  4. python预编译函数compile,exec,eval

    funcname = "func" func = "def %s():\n" % funcname funccontent = 'print "hel ...

  5. Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  6. 一个类是怎么被JVM执行的

    现有如下代码,那么我们的JVM是怎么执行的呢 public class Test{ public static vodi main(String[] args){ MaYun my=new MaYun ...

  7. 一篇文章带你学会Linux三剑客之一:awk

    awk是一种用于处理文本.模式匹配的编程语言.与sed和grep,俗称Linux下的三剑客.学会 awk 等于你在 Linux 命令行里,又多了一种处理文本的选择.这篇文章重点教你如何使用,看完这篇文 ...

  8. Linux 终端下解压文件失败问题

    Linux 终端下解压文件失败: # tar -zxvf *****.tar.bz2 tar 命令出错gzip: stdin: not in gzip format tar: Child return ...

  9. Nginx的正向代理与反向代理详解

    正向代理和反向代理的概念 代理服务(Proxy),通常也称为正向代理服务. 如果把局域网外Internet想象成一个巨大的资源库,那么资源就分布到了Internet的各个点上,局域网内的客户端要访问这 ...

  10. 痞子衡嵌入式:ARM Cortex-M文件那些事(0)- 文件关联

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的文件关联. 本篇是文件系列第一篇,本系列文章会逐一介绍ARM Cortex-M开发过程中(以IAR集成开发环境为例,其他开发 ...