【要什么自行车】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: 34,                             //按钮高度
        width: 82,                              //按钮宽度
        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 == 0)
            {
                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(0, 1) };
            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;
        }
时间: 2024-12-15 19:10:20

【要什么自行车】ASP.NET MVC4笔记02:上传文件 uploadify 组件使用的相关文章

asp.net FileUpload 控件上传文件 以二进制的形式存入数据库

图片上传事件代码如下所示: 1 byte[] binary = upload.FileBytes; 2 StringBuilder sqlStrSb = new StringBuilder(); 3 sqlStrSb.Append("update info set Thumb=?Imgwhere Id=200"); 4 string mySqlConStr = "Host=localhost; uid=root; pwd=123; DataBase=db"; 5 M

[学习笔记]验证上传文件后缀名类型

<script type="text/javascript" charset="utf-8"> function checkFile(filename){ var flag = false; var arr = ["jpg","png","gif","bmp"]; //取扩展名: var index = filename.indexOf("."); var

ASP.NET上传文件并记录到数据库

ASP.NET上传文件并记录到数据库 (2011-07-19 11:02:07) 转载▼ 标签: 杂谈 分类: asp.net学习 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebC

asp无惧上传类2.2上传文件的同时,通过 Request.QueryString将参数传递到保存页面中

先转一段文字,对不对再评论 在后台asp程序中,以前获取表单提交的ASCII 数据,非常的容易.但是如果 需要获取上传的文件,就必须使用Request对象的BinaryRead方法来读取.BinaryRead方法是对当前输入流进行指定字节数的二进制读取,有点需要注意的 是,一旦使用BinaryRead 方法后,再也不能使用Request.Form 或  Request.QueryString 集合了.结合Request对象的TotalBytes属性,可以将 所有表单提交的数据全部变成二进制,不过

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

ASP.NET MVC上传文件

出处:http://www.cnblogs.com/zhouhb/p/3906714.html 最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel    {        [Display(Name = "标题")]        [Required]        public string Title        {            get;           

ASP.NET 5探险(2):上传文件

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:在ASP.NET 5(MVC 6)中处理上传文件的方式和之前有所不同. 在MVC 5之前的版本中上传文件,有两种方式. 1,直接对Request.Files进行访问获取HttpPostedFileBase,如下面代码所示: [HttpPost] public ActionResult Upload() { string path = @"D:\Temp\"; HttpPos

不使用ASP.NET中的服务器控件将如何上传文件?

遇到文件的上传时,可能会有大部分的开发者喜欢使用服务器控件,虽然很方便,但是却不能很好的控制,不具灵活性. 现给出例子,使用html标签语言灵活的控制文件的上传. 1.html部分 <input type="file" id="uploadFile" name="uploadFile" style="display: none;"/> <a href="#" id="upload

ASP.NET 上传文件以及点击下载

需求说明: 实际项目中,有必要上传附件(包括图片.文档.解压文件等)对数据库数据完善,这里实现的功能就是,上传附件到数据库,然后从数据读出来之后,可以"点击下载"之前上传的附件内容. asp.net代码如下: //用FileUpload控件,上传附件之后,导入数据库操作 protected void btnUp_Click(object sender, EventArgs e) { DbSql db = new DbSql(); //数据操作类 string fileName = &q