【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用
参考:http://www.cnblogs.com/luotaoyeah/p/3321070.html
1、下载 uploadify 组件,copy至 Content文件夹
<link href="~/Content/uploadify/uploadify.css" rel="stylesheet" />
<script src="~/Content/uploadify/jquery.uploadify.js"></script>
2、View
<script type="text/javascript">
$(function () {
$('#btn_upload').uploadify({
uploader: '/home/upload', // 服务器处理地址
swf: '/Content/uploadify/uploadify.swf',
buttonText: "上传文件", //按钮文字
height: , //按钮高度
width: , //按钮宽度
fileTypeExts: "*.jpg;*.png;", //允许的文件类型
fileTypeDesc: "请选择图片文件", //文件说明
formData: { "imgType": "normal" }, //提交给服务器端的参数
onUploadSuccess: function (file, data, response) { //一个文件上传成功后的响应事件处理
var data = $.parseJSON(data);
$("#photo").attr("src",data.imgpath);
//alert(data.imgpath);
}
});
}); </script> <span id="btn_upload"></span>
<br />
<img id="photo" src="http://www.yxweb.com.cn/images/upphoto.gif" alt="请上传工作照" />
3、Controller
public ActionResult Upload(HttpPostedFileBase Filedata)
{
// 没有文件上传,直接返回
if (Filedata == null || string.IsNullOrEmpty(Filedata.FileName) || Filedata.ContentLength == )
{
return HttpNotFound();
} //获取文件完整文件名(包含绝对路径)
//文件存放路径格式:/files/upload/{日期}/{md5}.{后缀名}
//例如:/files/upload/20130913/43CA215D947F8C1F1DDFCED383C4D706.jpg
string fileMD5 = GetStreamMD5(Filedata.InputStream);
string FileEextension = Path.GetExtension(Filedata.FileName);
string uploadDate = DateTime.Now.ToString("yyyyMMdd"); string imgType = Request["imgType"];
string virtualPath = "/";
if (imgType == "normal")
{
virtualPath = string.Format("~/files/upload/{0}/{1}{2}", uploadDate, fileMD5, FileEextension);
}
else
{
virtualPath = string.Format("~/files/upload2/{0}/{1}{2}", uploadDate, fileMD5, FileEextension);
}
string fullFileName = this.Server.MapPath(virtualPath); //创建文件夹,保存文件
string path = Path.GetDirectoryName(fullFileName);
Directory.CreateDirectory(path);
if (!System.IO.File.Exists(fullFileName))
{
Filedata.SaveAs(fullFileName);
} var data = new { imgtype = imgType, imgpath = virtualPath.Remove(, ) };
return Json(data, JsonRequestBehavior.AllowGet);
} /// <summary>
/// 计算文件流的md5值
/// </summary>
/// <param name="stream">文件输入流</param>
/// <returns></returns>
public static String GetStreamMD5(Stream stream)
{
MD5 md5Hasher = new MD5CryptoServiceProvider();
/*计算指定Stream对象的哈希值*/
byte[] arrbytHashValue = md5Hasher.ComputeHash(stream);
/*由以连字符分隔的十六进制对构成的String,其中每一对表示value中对应的元素;例如“F-2C-4A”*/
string strHashData = System.BitConverter.ToString(arrbytHashValue).Replace("-", "");
return strHashData;
}
【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用的更多相关文章
- asp.net中FileUpload得到上传文件的完整路径
asp.net中FileUpload得到上传文件的完整路径 Response.Write("完整路径:" + Server.MapPath(FileUpload1.PostedFi ...
- asp dotnet core 支持客户端上传文件
本文告诉大家如何在 asp dotnet core 支持客户端上传文件 新建一个 asp dotnet core 程序,创建一个新的类,用于给客户端上传文件的信息 public class Kanaj ...
- ASP代码审计学习笔记 -3.上传漏洞
1.ASP上传过程抓包分析: POST /4.asp HTTP/1.1 Host: 192.168.1.102 User-Agent: Mozilla/5.0 (Windows NT 10.0; WO ...
- ASP.NET MVC 4 批量上传文件
上传文件的经典写法: <form id="uploadform" action="/Home/UploadFile" method="post& ...
- ASP.NET MVC 4 Ajax上传文件
这两天一直纠结着表单的问题.想在一个表单里实现三个功能: 输入查询条件,点击查询: 导出查询数据: 上传文件: 方法有很多,乱花渐欲迷人眼,尝试了很多,无果.大致说的是,给不同按钮写js代码,在js代 ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- asp.net 一般处理程序接收上传文件的问题
在使用Html+ashx处理文件上传时,遇到上传文件超过4M的问题,首先HTML代码如下: <!DOCTYPE html> <html> <head> <me ...
- ASP.NET Core MVC如何上传文件及处理大文件上传
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发AS ...
- asp.net 跨域服务器 上传文件
最近一个项目遇到问题,公司局域网中,在F域下有个服务器Fa,我们的项目就部署在Fa.项目里面有个功能,需要把生成的文件(.doc,.xls,.pdf)保存到O域的一台文件共享服务器Ob.在原有的网络环 ...
随机推荐
- video.js html5 视频播放器
我个人感觉很不错 https://github.com/videojs/video.js <head> <title>Video.js | HTML5 Video Player ...
- 谈谈c#中异步编程模型的变迁
大家在编程过程中都会用到一些异步编程的情况.在c#的BCL中,很多api都提供了异步方法,初学者可能对各种不同异步方法的使用感到迷惑,本文主要为大家梳理一下异步方法的变迁以及如何使用异步方法. Beg ...
- common-dbcp2数据库连接池参数说明
参数 默认值 描述 建议值 DefaultAutoCommit null 通过这个池创建连接的默认自动提交状态.如果不设置,则setAutoCommit 方法将不被调用. true Default ...
- JQuery checkbox check/uncheck
想通过JQuery来check或者uncheck页面上的checkbox控件,我们可能会想到用下面的代码: $('#chk-all').on('click', function(){ var chec ...
- MySQL—FOREIGN KEY
作用:保持数据一致性,完整性.实现一对一或一对多关系.(学习的过程中,老师说,实际的生产中,一般不使用物理上的外键约束的,都是使用逻辑上的外键约束) 要求: 父表与子表的存储引擎必须相等,而且只能是I ...
- xml存储bug
最近遇到了一个bug,详细情况如下:用linq to xml写xml文件,在加载的时候代码为xDocument.Load(filePath),保存的时候为xDocument.Save(filePath ...
- Vuejs注意点
1.多级联动的时候,前一级变的时候,首先要把后面级的内容清空,要不然用户可能把前一次后面级的选择和新的前一级的选择提交(即后边级的列表渲染出来了,单但用户没有选择,此时vue绑定的是上一次的数据). ...
- 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
Linux 爱好者都喜欢用哪些硬件,哪些发行版呢?近日 OpenBenchmarking.org 做了一个 2015 年度数据的统计和梳理,Linux Story 特意整理了一下,分享给大家. 转载于 ...
- JS脚本
js脚本是嵌在网页里打出的一块区域,一般写在最下端 script 脚本 // 这是单行注释的一种语法 /**/ 这是多行注释的一种语法 存储内容的东西叫变量 数据类型的有: 1 整型 ...
- JS原生第一篇 (帅哥)
"流程控制语句":if.for. 1.1 if 选择语句,给程序添加了多种执行路线. 1 if(){ 2 语句1 3 }else if(){ 4 语句2 5 }else if( ...