MVC文件的上传、删除
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文件的上传、删除的更多相关文章
- ASP.NET MVC 文件异步上传问题处理
最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了个小问题,通过查找相关渠道解决了,在这里把这个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助.我 ...
- ASP.NET MVC 4 批量上传文件
上传文件的经典写法: <form id="uploadform" action="/Home/UploadFile" method="post& ...
- ASP.NET MVC实现Excel文件的上传下载
在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...
- MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传
本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 ...
- thinkphp对文件的上传,删除,下载操作
工作需要,整理一下最近对php的学习经验,希望能对自己有帮助或者能帮助那些需要帮助的人. thinkphp对文件的操作,相对来说比较简单,因为tp封装好了一个上传类Upload.class.php 废 ...
- Spring MVC 实现文件的上传和下载 (八)
完整的项目案例: springmvc.zip 目录 SpringMVC 中,文件的上传,是通过 MultipartResolver 实现的. 所以,如果要实现文件的上传,只要在 spring-mvc. ...
- SFTP多文件上传,删除
公司项目中需要把项目的相关文件上传到服务器的tomcat中,需要在项目中进行以下几步操作: 1.添加项目信息,包括名称,描述,服务器ip,sftp的用户名,密码,端口号等,存在配置,部署,删除等操作 ...
- spring mvc ajax异步文件的上传和普通文件上传
表单提交方式文件上传和ajax异步文件上传 一:首先是我在spring mvc下的表单提交方式上传 ssm的包配置我就不一一详细列出来了,但是上传的包我还是列出来 这一段我也不知道怎么给大家讲解就是直 ...
- Spring MVC 实现文件的上传和下载
前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:“用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流”.我回复他说:“使用Spring MVC框架可以做到这一点,因为Spri ...
随机推荐
- [Swift]LeetCode650. 只有两个键的键盘 | 2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...
- [Swift]LeetCode812. 最大三角形面积 | Largest Triangle Area
You have a list of points in the plane. Return the area of the largest triangle that can be formed b ...
- 花点时间顺顺Git(上)
花点时间顺顺Git(上) 为了让你们点进来贼努力的想了一个色彩斑斓大吉大利的标题,好,看正文 历史:Linus的作者创建了开源的Linux,02年以前代码管理都依赖手动合并,后来管理不了了,拒绝SVN ...
- 巡风源码阅读与分析---view.py
巡风xunfeng----巡风源码阅读与分析 巡风是一款适用于企业内网的漏洞快速应急.巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果 ...
- partition分区
1.按id拆分 mysql -uroot mysql>use test; mysql>create table topic ( tid ) not ),partition t1 value ...
- [Abp 源码分析]三、依赖注入
0.简要介绍 在 Abp 框架里面,无时无刻不存在依赖注入,关于依赖注入的作用与好处我就不在这里多加赘述了,网上有很多解释的教程.在 [Abp 源码分析]一.Abp 框架启动流程分析 里面已经说过,A ...
- nginx替换响应内容
因为想要将非业务域名内嵌到微信小程序中,所以用到了nginx的反向代理功能来替换域名实现盗站(缘起:http://www.cnblogs.com/kenwar/p/8288882.html),但是替换 ...
- asp.net core 系列 4 注入服务的生存期
一.服务的生存期 在容器中每个注册的服务,根据程序应用需求都可以选择合适的服务生存期,ASP.NET Core 服务有三种生存期配置: (1) Transient:暂时生存期,在每次请求时被创建. 这 ...
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲.OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通过Spring Session+Redi ...
- Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...