Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示。不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中的使用,您也可以点击下面的链接进行演示或下载。
- 官方下载
- 官方文档
- 官方演示
首先按下面的步骤来实现一个简单的上传功能。
1 创建Web项目,命名为JQueryUploadDemo,从官网上下载最新的版本解压后添加到项目中。
2 在项目中添加UploadHandler.ashx文件用来处理文件的上传。
3 在项目中添加UploadFile文件夹,用来存放上传的文件。
进行完上面三步后项目的基本结构如下图:
4 Default.aspx的html页的代码修改如下:
<span style="color: blue;"><span style="color: #a31515;">html </span><span style="color: red;">xmlns</span><span style="color: blue;">="http://www.w3.org/1999/xhtml"> <span style="color: #a31515;">head </span><span style="color: red;">runat</span><span style="color: blue;">="server"> <span style="color: #a31515;">title</span><span style="color: blue;">></span><span>Uploadify</span><span style="color: blue;"></span><span style="color: #a31515;">title</span><span style="color: blue;">> <span style="color: #a31515;">link </span><span style="color: red;">href</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/example/css/default.css" </span><span style="color: red;">rel</span><span style="color: blue;">="stylesheet" </span><span style="color: red;">type</span><span style="color: blue;">="text/css" /> <span style="color: #a31515;">link </span><span style="color: red;">href</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/uploadify.css" </span><span style="color: red;">rel</span><span style="color: blue;">="stylesheet" </span><span style="color: red;">type</span><span style="color: blue;">="text/css" /> <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript" </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/jquery-1.3.2.min.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">> <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript" </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/swfobject.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">> <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript" </span><span style="color: red;">src</span><span style="color: blue;">="JS/jquery.uploadify-v2.1.0/jquery.uploadify.v2.1.0.min.js"></span><span style="color: #a31515;">script</span><span style="color: blue;">> <span style="color: #a31515;">script </span><span style="color: red;">type</span><span style="color: blue;">="text/javascript"> </span><span>$(document).ready(</span><span style="color: blue;">function</span><span>() { $(</span><span style="color: #a31515;">"#uploadify"</span><span>).uploadify({ </span><span style="color: #a31515;">'uploader'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/uploadify.swf'</span><span>, </span><span style="color: #a31515;">'script'</span><span>: </span><span style="color: #a31515;">'UploadHandler.ashx'</span><span>, </span><span style="color: #a31515;">'cancelImg'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/cancel.png'</span><span>, </span><span style="color: #a31515;">'folder'</span><span>: </span><span style="color: #a31515;">'UploadFile'</span><span>, </span><span style="color: #a31515;">'queueID'</span><span>: </span><span style="color: #a31515;">'fileQueue'</span><span>, </span><span style="color: #a31515;">'auto'</span><span>: </span><span style="color: blue;">false</span><span>, </span><span style="color: #a31515;">'multi'</span><span>: </span><span style="color: blue;">true </span><span>}); }); </span><span style="color: blue;"></span><span style="color: #a31515;">script</span><span style="color: blue;">> </span><span style="color: #a31515;">head</span><span style="color: blue;">> <span style="color: #a31515;">body</span><span style="color: blue;">> <span style="color: #a31515;">div </span><span style="color: red;">id</span><span style="color: blue;">="fileQueue"></span><span style="color: #a31515;">div</span><span style="color: blue;">> <span style="color: #a31515;">input </span><span style="color: red;">type</span><span style="color: blue;">="file" </span><span style="color: red;">name</span><span style="color: blue;">="uploadify" </span><span style="color: red;">id</span><span style="color: blue;">="uploadify" /> <span style="color: #a31515;">p</span><span style="color: blue;">> <span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifyUpload()"></span><span>上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">></span><span>| </span><span style="color: blue;"><span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifyClearQueue()"></span><span>取消上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">> </span><span style="color: #a31515;">p</span><span style="color: blue;">> </span><span style="color: #a31515;">body</span><span style="color: blue;">> </span><span style="color: #a31515;">html</span><span style="color: blue;">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
5 UploadHandler类的ProcessRequest方法代码如下:
<span style="color: blue;">public void </span><span>ProcessRequest(</span><span style="color: #2b91af;">HttpContext </span><span>context) { context.Response.ContentType = </span><span style="color: #a31515;">"text/plain"</span><span>; context.Response.Charset = </span><span style="color: #a31515;">"utf-8"</span><span>; </span><span style="color: #2b91af;">HttpPostedFile </span><span>file = context.Request.Files[</span><span style="color: #a31515;">"Filedata"</span><span>]; </span><span style="color: blue;">string </span><span>uploadPath = </span><span style="color: #2b91af;">HttpContext</span><span>.Current.Server.MapPath(@context.Request[</span><span style="color: #a31515;">"folder"</span><span>])+</span><span style="color: #a31515;">"\\"</span><span>; </span><span style="color: blue;">if </span><span>(file != </span><span style="color: blue;">null</span><span>) { </span><span style="color: blue;">if </span><span>(!</span><span style="color: #2b91af;">Directory</span><span>.Exists(uploadPath)) { </span><span style="color: #2b91af;">Directory</span><span>.CreateDirectory(uploadPath); } file.SaveAs(uploadPath + file.FileName); </span><span style="color: green;">//下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失 </span><span>context.Response.Write(</span><span style="color: #a31515;">"1"</span><span>); } </span><span style="color: blue;">else </span><span>{ context.Response.Write(</span><span style="color: #a31515;">"0"</span><span>); } }</span>
6 运行后效果如下图:
7 选择了两个文件后,点击上传,就可以看到UploadFile文件夹中会增加这两个文件。
上面简单地实现了一个上传的功能,依靠函数uploadify实现,uploadify函数的参数为json格式,可以对json对象的key值的修改来进行自定义的设置,如multi设置为true或false来控制是否可以进行多文件上传,下面就来介绍下这些key值的意思:
uploader : uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf。
script : 后台处理程序的相对路径 。默认值:uploadify.php
checkScript :用来判断上传选择的文件在服务器是否存在的后台处理程序的相对路径
fileDataName :设置一个名字,在服务器处理程序中根据该名字来取上传文件的数据。默认为Filedata
method : 提交方式Post 或Get 默认为Post
scriptAccess :flash脚本文件的访问模式,如果在本地测试设置为always,默认值:sameDomain
folder : 上传文件存放的目录 。
queueID : 文件队列的ID,该ID与存放文件队列的div的ID一致。
queueSizeLimit : 当允许多文件生成时,设置选择文件的个数,默认值:999 。
multi : 设置为true时可以上传多个文件。
auto : 设置为true当选择文件后就直接上传了,为false需要点击上传按钮才上传 。
fileDesc : 这个属性值必须设置fileExt属性后才有效,用来设置选择文件对话框中的提示文本,如设置fileDesc为“请选择rar doc pdf文件”,打开文件选择框效果如下图:
fileExt : 设置可以选择的文件的类型,格式如:'*.doc;*.pdf;*.rar' 。
sizeLimit : 上传文件的大小限制 。
simUploadLimit : 允许同时上传的个数 默认值:1 。
buttonText : 浏览按钮的文本,默认值:BROWSE 。
buttonImg : 浏览按钮的图片的路径 。
hideButton : 设置为true则隐藏浏览按钮的图片 。
rollover : 值为true和false,设置为true时当鼠标移到浏览按钮上时有反转效果。
width : 设置浏览按钮的宽度 ,默认值:110。
height : 设置浏览按钮的高度 ,默认值:30。
wmode : 设置该项为transparent 可以使浏览按钮的flash背景文件透明,并且flash文件会被置为页面的最高层。 默认值:opaque 。
cancelImg :选择文件到文件队列中后的每一个文件上的关闭按钮图标,如下图:
上面介绍的key值的value都为字符串或是布尔类型,比较简单,接下来要介绍的key值的value为一个函数,可以在选择文件、出错或其他一些操作的时候返回一些信息给用户。
onInit : 做一些初始化的工作。
onSelect :选择文件时触发,该函数有三个参数
- event:事件对象。
- queueID:文件的唯一标识,由6为随机字符组成。
- fileObj:选择的文件对象,有name、size、creationDate、modificationDate、type 5个属性。
代码如下:
<span>$(document).ready(</span><span style="color: blue;">function</span><span>() { $(</span><span style="color: #a31515;">"#uploadify"</span><span>).uploadify({ </span><span style="color: #a31515;">'uploader'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/uploadify.swf'</span><span>, </span><span style="color: #a31515;">'script'</span><span>: </span><span style="color: #a31515;">'UploadHandler.ashx'</span><span>, </span><span style="color: #a31515;">'cancelImg'</span><span>: </span><span style="color: #a31515;">'JS/jquery.uploadify-v2.1.0/cancel.png'</span><span>, </span><span style="color: #a31515;">'folder'</span><span>: </span><span style="color: #a31515;">'UploadFile'</span><span>, </span><span style="color: #a31515;">'queueID'</span><span>: </span><span style="color: #a31515;">'fileQueue'</span><span>, </span><span style="color: #a31515;">'auto'</span><span>: </span><span style="color: blue;">false</span><span>, </span><span style="color: #a31515;">'multi'</span><span>: </span><span style="color: blue;">true</span><span>, </span><span style="color: #a31515;">'onInit'</span><span>:</span><span style="color: blue;">function</span><span>(){alert(</span><span style="color: #a31515;">"1"</span><span>);}, </span><span style="color: #a31515;">'onSelect'</span><span>: </span><span style="color: blue;">function</span><span>(e, queueId, fileObj) { alert(</span><span style="color: #a31515;">"唯一标识:" </span><span>+ queueId + </span><span style="color: #a31515;">"\r\n" </span><span>+ </span><span style="color: #a31515;">"文件名:" </span><span>+ fileObj.name + </span><span style="color: #a31515;">"\r\n" </span><span>+ </span><span style="color: #a31515;">"文件大小:" </span><span>+ fileObj.size + </span><span style="color: #a31515;">"\r\n" </span><span>+ </span><span style="color: #a31515;">"创建时间:" </span><span>+ fileObj.creationDate + </span><span style="color: #a31515;">"\r\n" </span><span>+ </span><span style="color: #a31515;">"最后修改时间:" </span><span>+ fileObj.modificationDate + </span><span style="color: #a31515;">"\r\n" </span><span>+ </span><span style="color: #a31515;">"文件类型:" </span><span>+ fileObj.type ); } }); }); </span>
当选择一个文件后弹出的消息如下图:
onSelectOnce :在单文件或多文件上传时,选择文件时触发。该函数有两个参数event,data,data对象有以下几个属性:
- fileCount:选择文件的总数。
- filesSelected:同时选择文件的个数,如果一次选择了3个文件该属性值为3。
- filesReplaced:如果文件队列中已经存在A和B两个文件,再次选择文件时又选择了A和B,该属性值为2。
- allBytesTotal:所有选择的文件的总大小。
onCancel : 当点击文件队列中文件的关闭按钮或点击取消上传时触发。该函数有event、queueId、fileObj、data四个参数,前三个参数同onSelect 中的三个参数,data对象有两个属性fileCount和allBytesTotal。
- fileCount:取消一个文件后,文件队列中剩余文件的个数。
- allBytesTotal:取消一个文件后,文件队列中剩余文件的大小。
onClearQueue :当调用函数fileUploadClearQueue时触发。有event和data两个参数,同onCancel 中的两个对应参数。
onQueueFull :当设置了queueSizeLimit并且选择的文件个数超出了queueSizeLimit的值时触发。该函数有两个参数event和queueSizeLimit。
onError :当上传过程中发生错误时触发。该函数有event、queueId、fileObj、errorObj四个参数,其中前三个参数同上,errorObj对象有type和info两个属性。
- type:错误的类型,有三种‘HTTP’, ‘IO’, or ‘Security’
- info:错误的描述
onOpen :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列。该函数有event、queueId、fileObj三个参数,参数的解释同上。
onProgress :点击上传时触发,如果auto设置为true则是选择文件时触发,如果有多个文件上传则遍历整个文件队列,在onOpen之后触发。该函数有event、queueId、fileObj、data四个参数,前三个参数的解释同上。data对象有四个属性percentage、bytesLoaded、allBytesLoaded、speed:
- percentage:当前完成的百分比
- bytesLoaded:当前上传的大小
- allBytesLoaded:文件队列中已经上传完的大小
- speed:上传速率 kb/s
onComplete:文件上传完成后触发。该函数有四个参数event、queueId、fileObj、response、data五个参数,前三个参数同上。response为后台处理程序返回的值,在上面的例子中为1或0,data有两个属性fileCount和speed
- fileCount:剩余没有上传完成的文件的个数。
- speed:文件上传的平均速率 kb/s
注:fileObj对象和上面讲到的有些不太一样,onComplete 的fileObj对象有个filePath属性可以取出上传文件的路径。
onAllComplete:文件队列中所有的文件上传完成后触发。该函数有event和data两个参数,data有四个属性,分别为:
- filesUploaded :上传的所有文件个数。
- errors :出现错误的个数。
- allBytesLoaded :所有上传文件的总大小。
- speed :平均上传速率 kb/s
相关函数介绍
在上面的例子中已经用了uploadifyUpload和uploadifyClearQueue两个函数,除此之外还有几个函数:
uploadifySettings:可以动态修改上面介绍的那些key值,如下面代码
<span>$(</span><span style="color: #a31515;">'#uploadify'</span><span>).uploadifySettings(</span><span style="color: #a31515;">'folder'</span><span>,</span><span style="color: #a31515;">'JS'</span><span>);</span>
如果上传按钮的事件写成下面这样,文件将会上传到uploadifySettings定义的目录中
<span style="color: blue;"><span style="color: #a31515;">a </span><span style="color: red;">href</span><span style="color: blue;">="javascript:$('#uploadify').uploadifySettings('folder','JS');</span></span>
<span style="color: blue;">$('#uploadify').uploadifyUpload()"></span><span>上传</span><span style="color: blue;"></span><span style="color: #a31515;">a</span><span style="color: blue;">></span>
uploadifyCancel:该函数接受一个queueID作为参数,可以取消文件队列中指定queueID的文件。
<span>$(</span><span style="color: #a31515;">'#uploadify'</span><span>).uploadifyCancel(id);</span>
花了一个晚上,终于写完了,对JQuery这个上传插件也基本了解了,希望对大家有所帮助,不对之处还望大家指正。
源码下载

本篇文章给大家分享40+ 个atom常用插件,并附上在atom中安装插件的方法,希望对大家有所帮助!

本篇文章给大家整理分享 6 个 Vue3 开发必备的 VSCode 插件,可以直接用过 VSCode 的插件中心直接安装使用,希望对大家有所帮助!

人工智能AI是当前广受认可的未来趋势和发展方向。虽然有些人担心AI可能会取代所有的工作,但实际上只会取代那些重复性高、产出低的工作。因此,我们应该学会更加聪明地工作,而不是使劲努力地工作。本文介绍5个由AI驱动的Intellij插件,这些插件可以帮助你提高生产力,减少繁琐的重复性工作,让你的工作更加高效、便捷。1GithubCopilotGithubCopilot是由OpenAI和GitHub联合开发的一款人工智能代码辅助工具。它使用了OpenAI的GPT模型来分析代码上下文,预测并生成新的代码

可以说,VisualStudioCode这个编辑器,让微软在开源社区赢回了王者段位,要知道全球2400万开发者中有1400万称VSCode为自己的家,再加上GitHub和VSCode的结合,几乎所有的程序员的都离不开VSCode,不过,VSCode如此优秀,值得每个程序员使用,甚至我觉得非程序员都可以用它来码字。如果你还没用过VSCode,那访问这里安装[1]一个吧,很可能就打开了一个新世界。今天分享14个非常实用VSCode插件,可以让你写代码如同神一般,尤其是

这篇文章主要介绍了这么多年来我在使用 VSCode 过程中用到的一些不错的插件。这些VSCode插件,帮你打造地表最强IDE!

本篇文章给大家总结了23个各种功能的VSCode 插件,可以帮助开发者提高开发效率和美观性,希望对大家有所帮助!

提起Monica,你会想到什么?是老友记里的主角之一Monica·Geller,一个热心肠的女主人形象;还是心跳文学部里的疯疯癫癫的Monika?或者,最近爆火的Chrome插件——Monica。它的功能实在是太强大了,用完一次保你爱不释手。毕竟,搭载了ChatGPT的网页助手,能是俗物吗?Monica功能大赏首先明确一点,Monica是ChatGPT在网页上的应用,换句话说,Monica就是靠着ChatGPTAPI的强大功能才厉害。而仔细看看Chrome商店中的介绍,我们就会发现Monica真

ChatGPT是一个超强的AI应用程序,OpenAI已经发布的GPT-4引起了更广泛的关注。ChatGPT是由OpenAI开发的专门从事对话的AI聊天机器人,其主要目标是使AI系统更自然地进行互动。大家可能都已经尝试过ChatGPT,今天讲一讲与这个全新工具互动的不同方法。本文总结了6个可以使ChatGPT成为日常助手(甚至超越日常助手)的工具!1.【GoogleChromeExtension】在任何地方使用ChatGPT想在任何地方轻松地使用ChatGPT吗?那么你可以使用Chrome插件(h


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器