基于MVC4+EasyUI开发附件上传组件uploadify的使用

这篇文章主要介绍了基于mvc4+easyui的web开发框架之附件上传组件uploadify的使用,需要的朋友可以参考下

1、上传组件uploadify的说明及脚本引用

Uploadify 是 JQuery 一个著名的上传插件,利用 Flash 技术,Uploadify 越过浏览器的限制,控制了整个上传的处理过程,实现了客户端无刷新的文件上传,这样就实现了在客户端的上传进度控制,所以,你首先要确定浏览器中已经安装了 Adobe 的 Flash 插件。

Uploadify 当前有两个版本,基于 Flash 是免费的,还有基于 HTML5 的收费版,我们使用免费版,当前版本为v3.2.1。

这个组件需要Jquery库的支持,一般情况下,需要添加Jquery的js库,如下所示


登录后复制

不过由于我的Web开发框架是基于EasyUI的,一般在网页的开始就会引用相关的类库,已经包含了Jquery的类库了,如下所示。

 @*添加Jquery,EasyUI和easyUI的语言包的JS文件*@      

登录后复制

所以我们只需要添加Javascript类库(jquery.uploadify.js),另外加上他的样式文件(uploadify.css)即可:  

 @*添加对uploadify控件的支持*@  @**@    

登录后复制

2、上传组件uploadify在Web界面的使用

首先我们需要在HTML代码中放置两个控件,一个是用来上传的控件,一个是用来显示已上传列表的控件,还有就是添加上传和取消上传的按钮操作,如下所示。

                                                                               

                                                上传                取消                

                

                
                                    

登录后复制

界面效果初始化如下所示:

基于MVC4+EasyUI开发附件上传组件uploadify的使用

当然,下一步我们需要添加相应的文件上传初始化的操作脚本代码,如下所示。 

    $(function () {      //添加界面的附件管理      $('#file_upload').uploadify({        'swf': '/Content/JQueryTools/uploadify/uploadify.swf', //FLash文件路径        'buttonText': '浏 览',                 //按钮文本        'uploader': '/FileUpload/Upload',            //处理文件上传Action        'queueID': 'fileQueue',            //队列的ID        'queueSizeLimit': 10,             //队列最多可上传文件数量,默认为999        'auto': false,                 //选择文件后是否自动上传,默认为true        'multi': true,                 //是否为多选,默认为true        'removeCompleted': true,            //是否完成后移除序列,默认为true        'fileSizeLimit': '10MB',            //单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值        'fileTypeDesc': 'Image Files',         //文件描述        'fileTypeExts': '*.gif; *.jpg; *.png; *.bmp;*.tif;*.doc;*.xls;*.zip', //上传的文件后缀过滤器        'onQueueComplete': function (event, data) {         //所有队列完成后事件          ShowUpFiles($("#Attachment_GUID").val(), "p_files"); //完成后更新已上传的文件列表          $.messager.alert("提示", "上传完毕!");                   //提示完成              },        'onUploadStart' : function(file) {          $("#file_upload").uploadify("settings", 'formData', { 'folder': '政策法规', 'guid': $("#Attachment_GUID").val() }); //动态传参数        },        'onUploadError': function (event, queueId, fileObj, errorObj) {          //alert(errorObj.type + ":" + errorObj.info);        }      });  

登录后复制

在上面的脚本中,均有注释,一看就明白相关的属性了,不明白的也可以到官方网站去查找了解。值得注意的就是

'uploader': '/FileUpload/Upload'

登录后复制

这行就是提交文件给MVC的Action进行处理,我们在控制器FileUpload的 Upload处理即可。

另外,在附件上传完毕后,我们需要对所在的界面进行更新,以便显示已上传的列表,那么我们需要增加下面的函数处理即可。

'onQueueComplete': function (event, data) {

登录后复制

最后说明非常值得注意的地方,就是文件上传的时候,我们需要动态获取界面上的一些元素的值,作为参数传递,那么我们就需要在onUploadStart函数中进行如下处理。

$("#file_upload").uploadify("settings", 'formData', { 'folder': '政策法规', 'guid': $("#Attachment_GUID").val() }); //动态传参数

登录后复制

3、上传组件uploadify的C#后台处理代码

在上面的传递参数中,我使用了中文数值,一般情况下,这样会在后台拿到中文乱码,所以我们需要在控制器的Action的函数里面设置它的内容格式,如下所示。

ControllerContext.HttpContext.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");ControllerContext.HttpContext.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");ControllerContext.HttpContext.Response.Charset = "UTF-8";

登录后复制

控制器FileUpload的后台处理Action代码完整如下所示:  

 public class FileUploadController : BaseController  {    [AcceptVerbs(HttpVerbs.Post)]    public ActionResult Upload(HttpPostedFileBase fileData, string guid, string folder)    {      if (fileData != null)      {        try        {          ControllerContext.HttpContext.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");          ControllerContext.HttpContext.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");          ControllerContext.HttpContext.Response.Charset = "UTF-8";          // 文件上传后的保存路径          string filePath = Server.MapPath("~/UploadFiles/");          DirectoryUtil.AssertDirExist(filePath);          string fileName = Path.GetFileName(fileData.FileName);   //原始文件名称          string fileExtension = Path.GetExtension(fileName);     //文件扩展名          string saveName = Guid.NewGuid().ToString() + fileExtension; //保存文件名称          FileUploadInfo info = new FileUploadInfo();          info.FileData = ReadFileBytes(fileData);          if (info.FileData != null)          {            info.FileSize = info.FileData.Length;          }          info.Category = folder;          info.FileName = fileName;          info.FileExtend = fileExtension;          info.AttachmentGUID = guid;          info.AddTime = DateTime.Now;          info.Editor = CurrentUser.Name;//登录人          //info.Owner_ID = OwerId;//所属主表记录ID          CommonResult result = BLLFactory.Instance.Upload(info);          if (!result.Success)          {            LogTextHelper.Error("上传文件失败:" + result.ErrorMessage);          }          return Content(result.Success.ToString());        }        catch (Exception ex)        {          LogTextHelper.Error(ex);          return Content("false");        }      }      else      {        return Content("false");      }    }    private byte[] ReadFileBytes(HttpPostedFileBase fileData)    {      byte[] data;      using (Stream inputStream = fileData.InputStream)      {        MemoryStream memoryStream = inputStream as MemoryStream;        if (memoryStream == null)        {          memoryStream = new MemoryStream();          inputStream.CopyTo(memoryStream);        }        data = memoryStream.ToArray();      }      return data;    }

登录后复制

4、上传组件uploadify在Web开发框架中的界面展示

具体上传组件在的Web开发框架中界面效果如下所示,下图是总体的列表中附件的展示。

基于MVC4+EasyUI开发附件上传组件uploadify的使用

附件编辑和上传界面如下所示。

基于MVC4+EasyUI开发附件上传组件uploadify的使用

附件信息查看效果如下所示:

基于MVC4+EasyUI开发附件上传组件uploadify的使用

以上就是基于MVC4+EasyUI开发附件上传组件uploadify的使用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2438710.html

(0)
上一篇 2025年3月3日 11:48:40
下一篇 2025年3月3日 11:48:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Asp.NET控制文件上传的大小方法(超简单)_实用技巧

    下面小编就为大家分享一篇asp.net控制文件上传的大小方法(超简单),具有很好的参考价值,希望对大家学习asp.net有所帮助。对asp.net感兴趣的朋友一起跟随小编过来看看吧 在web.config中的system.web 节点下添加…

    编程技术 2025年3月3日
    200
  • 电脑怎么拍照上传

    电脑只要安装了摄像头就可以进行拍照,但是有些用户还不知道该怎么拍照上传,现在就给大家具体介绍一下电脑拍照的方法,这样用户得到图片之后想上传到哪里都可以了。 电脑怎么拍照上传 一、Mac电脑 1、打开访达,再点击左边的应用程序。 2、打开后点…

    2025年3月3日 互联网
    200
  • Go语言中如何处理并发文件分片上传问题?

    Go语言中如何处理并发文件分片上传问题? 在当今互联网时代,文件上传是经常进行的一个操作。然而,大文件的上传会面临一些问题,比如网络不稳定、传输速度慢等。为了解决这些问题,我们可以使用文件分片上传的方式,将文件分割成多个小块进行传输,从而提…

    2025年3月1日
    200
  • Python使用Flask框架同时上传多个文件的方法

    本文实例讲述了python使用flask框架同时上传多个文件的方法,分享给大家供大家参考。具体如下: 下面的演示代码带有详细的html页面和python代码 import os# We’ll render HTML templates an…

    编程技术 2025年2月28日
    200
  • 如何查看eml文件的附件

    eml文件是电子邮件的一种文件格式,通常用于保存和传输电子邮件消息。当你收到了一个包含eml附件的电子邮件时,你需要知道如何打开这个附件才能查看和阅读邮件内容。 打开eml文件附件有以下两种常见的方法: 方法一:使用邮件客户端打开eml附件…

    互联网 2025年2月28日
    200
  • 上载失败,文件不能为空不一致错误

    discorde是一个流行的文件共享平台,但用户在上传文件时可能会遇到上传失败、文件不能为空等错误。尽管尚无明确解释,这些错误可能会随机出现,导致无法上传某些文件,甚至影响再次上传之前发送过的文件。 修复上载失败,文件不能为空不一致错误 上…

    2025年2月28日
    200
  • 一条指令彻底删除扫描出来的有害程序

    一条指令彻底删除扫描出来的有害程序 作者:田逸(formyz) 一个NFS服务器,为多个Web项目所共享。这些目录包括PHP程序、图片、HTML页面和用户上传的文档和附件等。因为某些Web框架古老,存在诸如不对上传文件做严格的安全性检查,虽…

    2025年2月28日
    200
  • python实现上传样本到virustotal并查询扫描信息的方法

    本文实例讲述了python实现上传样本到virustotal并查询扫描信息的方法。分享给大家供大家参考。具体方法如下: import simplejson import urllib import urllib2 import os MD5…

    编程技术 2025年2月28日
    200
  • 如何打印Outlook中的所有附件

    outlook是功能最丰富的电子邮件客户端之一,已成为专业交流不可或缺的工具。其中一个挑战是在outlook中同时打印所有附件。通常需要逐个下载附件才能打印,但如果想一次性打印所有内容,这就是大多数人遇到的问题。 如何打印Outlook中的…

    2025年2月28日 互联网
    200
  • 微软 Windows 11/10 端 Edge 浏览器新增“手机上传”功能,方便跨设备文件传输

    微软在最新的稳定版本中为Windows 11/10端的Edge浏览器增添了一个新功能,即“手机上传”。用户现在可以通过Edge浏览器直接从手机上传文件,而且该功能几乎适用于所有网站,没有文件格式的限制。这一功能的引入为用户提供了更加便捷的上…

    2025年2月27日
    400

发表回复

登录后才能评论