码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2014-11-23 11:37:54      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   os   使用   

 

参考: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;
        }

 

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

标签:des   style   blog   http   io   ar   color   os   使用   

原文地址:http://www.cnblogs.com/quejuwen/p/4116269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!