- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在Web开发中,有很多可以上传的组件模块,利用HTML的File控件的上传也是一种办法,不过这种方式,需要处理的细节比较多,而且只能支持单文件的操作。在目前Web开发中用的比较多的,可能uploadify(参考http://www.uploadify.com/)也算一个吧,不过这个版本一直在变化,他们的脚本调用也有很大的不同,甚至调用及参数都一直在变化,很早的时候,那个Flash的按钮文字还没法变化,本篇随笔主要根据项目实际,介绍一下3.1版本的uploadify的控件使用,这版本目前还是最新的,因此对我们做Web开发来说,有一定的参考性.
这个控件有很多参数控制,以及事件的处理响应,相对来说也比较好用。参数控制可以控制上传文件多选、文件类型、文件大小、文件数量、检查文件是否存在,以及一些按钮参数的控制,如文字、高度、宽度等,对提交文件成功与否、完成操作、取消、停止上传等等都有控制,他们的帮助文档也写得比较完善,不过就是各个版本的方法参数完全不同了,但控件是一个好控件.
控件的使用首先要加入必备的脚本类库,由于该控件是利用了Jquery的功能,因此还需要应用Jquery脚本文件,如下所示.
。
配置控件的一些参数,以及相应的处理事件,如下所示.
<script language="javascript" type="text/javascript"> $(function () { var guid = '<%=Request["guid"] %>'; var type = '<%=Request["type"] %>'; if (guid == null || guid == "") { guid = newGuid(); } if (type != null) { type = type + '/'; } 。
。
$('#file_upload').uploadify({ 'swf': 'uploadify.swf', //FLash文件路径 'buttonText': '浏 览', //按钮文本 'uploader': 'uploadhandler.ashx?guid=' + guid, //处理ASHX页面 'formData' : { 'folder' : 'picture' }, //传参数 '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', //上传的文件后缀过滤器 'onQueueComplete': function (event, data) { //所有队列完成后事件 //ShowUpFiles(guid, type, show_div); alert("上传完毕!"); }, 'onUploadError': function (event, queueId, fileObj, errorObj) { alert(errorObj.type + ":" + errorObj.info); } }); }),
function newGuid() { var guid = ""; for (var i = 1; i <= 32; i++){ var n = Math.floor(Math.random()*16.0).toString(16); guid += n; if((i==8)||(i==12)||(i==16)||(i==20)) guid += "-"; } return guid; } </script> 。
。
再次提一下,这个控件不要参考网上其他的一些说明,否则可能参数及用法不正确,一定要找到对应版本的说明(本篇指的是3.1.1),最好参考该版本的在线文档.
上面的参数,我基本上都给了注释了,还有一些不是很重要的参数,这里没有列出来,需要可以参考在线文档吧.
值得提到的是,这个版本可以修改Flash里面的文字,非常棒,很讨厌以前的那个默认Browse的英文,虽然以前替代图片可以修改文字,但是还是不太好用。这个直接修改文字,非常好.
值得注意的是uploader参数,这个是我们ashx的后台处理程序,就是控件提交文件给那个页面进行保存处理,添加数据库记录等操作.
。
。
页面代码使用很简单,如下所示 。
<body style="margin-left:10px; margin-top:10px"> <form id="form1" runat="server" enctype="multipart/form-data"> <div id="fileQueue" class="fileQueue"></div> 。
。
<div> <input type="file" name="file_upload" id="file_upload" /> <p> <input type="button" class="shortbutton" id="btnUpload" onclick="javascript:$('#file_upload').uploadify('upload','*')" value="上传" /> <input type="button" class="shortbutton" id="btnCancelUpload" onclick="javascript:$('#file_upload').uploadify('cancel')" value="取消" /> </p> <div id="div_show_files"></div> </div> </form> </body> 。
关键是后台上传文件的保存操作了,asp.net一般采用ashx的处理页面来处理.
/// <summary> /// 文件上传后台处理页面 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class UploadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Charset = "utf-8",
。
try { string guid = context.Request.QueryString["guid"]; string folder = context.Request["folder"]; //LogTextHelper.Info(folder),
HttpPostedFile file = context.Request.Files["Filedata"]; if (file != null) { string oldFileName = file.FileName;//原文件名 int size = file.ContentLength;//附件大小 string extenstion = oldFileName.Substring(oldFileName.LastIndexOf(".") + 1);//后缀名 string newFileName = GetNewFileName(oldFileName);//生成新文件名 //LogTextHelper.Info(newFileName),
#region 上传到远程服务器 //FileServerManage fsw = new FileServerManage(); //string uploadFilePath = "/" + newFileName; //if (!string.IsNullOrEmpty(folder)) //{ // uploadFilePath = string.Format("/{0}/{1}", folder, newFileName); //} //bool uploaded = fsw.UploadFile(file.InputStream, "/" + folder + "/" + newFileName); #endregion 。
#region 本地服务器上传 。
AppConfig config = new AppConfig(); string uploadFiles = config.AppConfigGet("uploadFiles"); if (string.IsNullOrEmpty(uploadFiles)) { uploadFiles = "uploadFiles"; } if (!string.IsNullOrEmpty(folder)) { uploadFiles = Path.Combine(uploadFiles, folder); } 。
string uploadPath = Path.Combine(HttpContext.Current.Server.MapPath("/"), uploadFiles); if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } string newFilePath = Path.Combine(uploadPath, newFileName); LogTextHelper.Info(newFilePath); file.SaveAs(newFilePath); bool uploaded = File.Exists(newFilePath),
#endregion 。
if (uploaded) { #region 文件保存成功后,写入附件的数据库记录 //AttachmentInfo attachmentInfo = new AttachmentInfo(); //attachmentInfo.EditorTime = DateTime.Now; //attachmentInfo.FileExtend = extenstion; //attachmentInfo.FileName = folader + "/" + newFileName; //attachmentInfo.OldFileName = oldFileName; //attachmentInfo.Size = size; //attachmentInfo.Guid = guid; //BLLFactory<Attachment>.Instance.Insert(attachmentInfo); #endregion } } else { LogTextHelper.Error("上传文件失败"); } } catch (Exception ex) { LogTextHelper.Error("上传文件失败", ex); throw; } } 。
/// <summary> /// 获取新的名称 比如:aa.jpg转化为aa(20090504).jpg /// </summary> /// <param name="fileName">文件名称[aa.jpg]</param> /// <returns>新的文件名称</returns> public static string GetNewFileName(string fileName) { if (string.IsNullOrEmpty(fileName)) return string.Empty,
//文件后缀名 string extenstion = fileName.Substring(fileName.LastIndexOf(".") + 1); string name = fileName.Substring(0, fileName.LastIndexOf(".")) + "(" + DateTime.Now.ToFileTime() + ")"; string newFileName = name + "." + extenstion; return newFileName; } 。
public bool IsReusable { get { return false; } } } 。
。
。
最后此篇关于asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)的文章就讲到这里了,如果你想了解更多关于asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
如果服务器在使用Uploadify上传文件时返回错误(HTTP响应代码!= 200),则上传的文件将显示红色背景,并显示如下消息: file.jpg (52.78KB) - HTTP Error 表示
本文实例为大家分享了java文件上传和预览实现代码,供大家参考,具体内容如下 1、下载uploadify插件 2、index.html ?
我刚刚实现了 uploadify在我的项目中,我注意到上传过程中似乎有一个重要的安全问题: 上传文件的文件夹作为 javascript 参数提供,因此在客户端。如果用户更改脚本,并为上传填写不同的文件
我正在网络上实现uploadify上传照片,并且成功触发响应,Chrome和IE 8上一切正常,但是每次响应警报弹出时Firefox崩溃,无法单击任何内容,我什至无法关闭警报或Firefox,而Fir
我在 uploadify 设置中使用 auto: false ,单击提交按钮时将开始上传,然后一旦触发 onQueueComplete 事件,表单就会提交。但是,当没有选择文件时,onQueueCom
我想使用 uploadify v.3.1 (flash) 上传图像。我单击“选择文件”,选择一个文件,文件已上传,但最终收到错误消息: haus2.jpg (256KB) - HTTP 错误 (401
我正在使用“Uploadify”JQuery 插件进行文件上传。我阅读了文档并引用了示例,并将代码附加到了我的文件中。一切正常,除了上传文件后,文件名消失了。您可以找到文档here . 文档提到了“o
我如何在codeigniter中实现这个? Uploadify(Jquery) 我的意思是 Controller 是什么?进度如何跟踪?如果用户没有安装flashplayer会发生什么? 我如何检查进
是否可以使用 uploadify 实现单个上传进度条和多个文件上传? 最佳答案 Rails 3.1 应用程序的工作解决方案。 它是用于多个上传的单个进度条,但是...我使用了 jQuery.anima
我使用JQuery插件Uploadify用于上传文件。它在所有浏览器中都能正常工作。但是,如果我像这样通过 .htaccess 实现密码保护 AuthType Basic AuthName "Rest
我正在尝试 Uploadify 来清除上传队列并删除上传的文件。问题是这样的。如果我上传 5 个文件(uploadLimit 为 5 组),它们会第一次上传。但是如果我使用这个清除队列: Clear
开幕式 我有几种形式(在本例中是两种),它们位于使用 Ext-JS 的选项卡中。 我还有用于主要 JavaScript 脚本/编程的 jQuery 框架。 last 是一个保存状态的 Javascri
好的,我有一个表单下拉列表 Cheesecakes Fruitcakes 和一个隐藏的文本输入 在我的 jquery/javascript 中 $('#select_category').cha
我正在尝试使用 Uploadify 上传多个文件, $('#fileuploadinput').uploadify({ uploader: '/js/uploadify/uploadify.s
有没有办法在uploadify中限制上传到1个文件? 我在文档中看不到任何内容?我对最大文件大小进行了位排序,但找不到一种方法将其限制为仅允许选择一个文件。 最佳答案 尝试将“multi”设置为 fa
我正在尝试实现 uploadify,以下是我的设置 $('#file_upload').uploadify({ 'uploader' : 'uploadify/uploadify.s
我正在寻找在 jQuery 插件中拥有不同文件类型的解决方案 Uploadify . 考虑以下过程:您想要使用您选择的程序打开一个文件。从默认的操作系统对话框开始,您可以在下拉菜单中选择不同的文件类型
我有一个 Send.aspx 页面,上面有一个 uploadify 控件。 Upload.ashx 处理文件上传。 我正在将文件记录添加到 Upload.ashx 文件中的 sql 数据库,完成后我需
我正在尝试使用 uploadify 将图像上传到远程服务器。对于跨脚本问题或其他问题,我已经做了我能想到的一切。 这是我所做的。 上传功能中的“始终”脚本访问。我的 ww2 服务器上有一个 cross
我只是想为标题添加一个简单的文本字段并将其发布到 uploadify.php,但它不起作用。 Javascript: $(function() { $("#file_upload").uplo
我是一名优秀的程序员,十分优秀!