`
quan356270259
  • 浏览: 35053 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

FancyUpload说明文档

阅读更多
应用部署


文件夹fancyupload中的文件就是该组件所需要到的所有文件了,包括四个JS、二个图片、一个swf文件,另外还包含一个简单的测试html页面

引入JS文件
在页面上依次引入mootools-release-1.11.js、Swiff.Base.js、Swiff.Uploader.js、FancyUpload.js这四个JS,具体目录请依据自己的情况进行设置!

在页面上设置CSS样式(主要是文件列表和上传进度的样式)
在onload方法中调用如下代码:
var upload = new FancyUpload(
    $(“fileId”),
    {
        swf: 'Swiff.Uploader.swf'
    }
);
相关的参数意义如下:
fileId   就是我们页面上文件域的ID,即type为file的input元素的ID;
{}     这样包起来的参数就是我们的可选参数了,可参考FancyUpload.js中的说明。
FancyUpload的参数说明
url
文件上传的地址,如果不指定,那么将会自动取文件域所在的表单的action值来进行上传。如果表单的action也没有指定值,那么将尝试获取路径栏中的地址来进行文件上传。一般而言我们都需要指定该参数和文件域所在的表单的action两者之一!

swf
就是组件中的flash文件了,主要是用来选择文件和过滤等,基本上可以不用设置。

multiple
是否允许选择多个文件,默认是true。这个多选是指在打开的文件对话框中按住ctr键进行多文件的选中。

queued
是否允许队列上传,默认是true。

types
指定上传文件的类型,采用的格式是 {提示信息:文件类型},如只允许媒体文件上传的例子:{“媒体文件(*.rm,*.avi)” : “*.rm; *.avi”}

limitSize
指定限制的文件大小,单位是字节!默认是不限制,超过此值的文件将不被选中,注意即使选择后系统也没有提示,但是队列中也是没有该文件的!可以通过修改文件FancyUpload.js,在其128行的if语句中加上一个alert提示即可!

limitFiles
限制的文件个数,默认是不限制!

createReplacement
一个自定义函数(参数为文件域对象),用来替换文件域,默认是被替换成为一个按钮!具体的代码可以参考FancyUpload.js中的第101到111行的代码。默认我已经将其按钮的值改成了中文的“浏览文件”。

instantStart
表示选择文件后是否立即开始上传,默认是false!也建议不要设置为true,上传的操作我们可以交给该文件域所在表单的提交按钮,这也是自动绑定的,无须我们做任何操作。

allowDuplicates
是否允许队列中选择重复的文件,默认是false!注释中是true,而代码中是false,所以以代码中的为准。

container
flash文件的容器对象,默认是document.body,可以不用修改!

optionFxDuration
文件添加到队列后,其高亮度到消失高亮度的时间,默认是250ms!也就是渐逝的时间长度。

queueList
来列表显示文件队列的容器对象或其ID。

onComplete
单个文件上传成功后调用的方法,非AJAX,无回调参数。每个文件上传成功后都将调用该方法一次!

onAllComplete
所有文件上传成功后的调用方法!

表单文件域和参数同时上传


在你自己试过这个上传组件后,是不是感觉非常好用的,但同时你也或许发现了一个问题,那就是表单中的参数怎么进行上传的问题。因为该组件是采用FLASH+AJAX进行上传的,即页面是不刷新的,而且上传的过程中仅仅是上传了你选择的文件,而所有的表单非文件域参数则被忽略了。那我们如何来进行文件和参数的同步上传呢,这里有几个问题要注意的就是:
1)由于该组件是绑定了表单的submit方法,所以不能够直接在js中使用$(‘表单ID’).submit()这样的方式来进行表单上传,否则参数是传上去了而文件则没有;

2)如果没有做设置那么只要选择了文件而且触发了表单的submit事件,那么该组件就会开始上传文件,即使我们加了onsubmit方法中的return false也无效;

3)在第二条的基础上我们如何保证用户既选择了文件而且又输入了表单的所有必填参数呢?


说明如下:

1)  首先是上传前的参数检查
    这包括表单中的必填参数和文件的选择与否的判断。既然我们无法通过直接点击submit按钮进行提交前检查,那么我们就用一个普通的按钮,设置一个onclick事件,通过这个事件来进行参数的检查。这个即可避免选择了文件但又没有输入参数的误提交,又检查了整个数据的完整性,其代码如下:
    <input type=”button” value=”提交” onclikc=”checkSubmit()” />
    在checkSubmit方法中我们可以通过调用对象FancyUpload的fileList属性来判断用户是否选择了文件,其代码如下(假设你的FancyUpload对象的实例名称是uploader):
    if (uploader. fileList.length < 1) {
        alert(‘请选择要上传的文件!’);
    }
    通过判断这个属性(类型为数组)的长度来查看用户是否选择了文件,具体的个数就需要用户自己进行判断了,我这里是一个文件。

2)  表单提交
    参数检查完整后我们就可以开始上传文件和表单参数了,这里我们的文件和表单参数是无法一起提交的,我们只能分先文件上传,上传成功后再提交我们的表单参数。
    第一步是文件的上传,之前也已经提过了不能够直接在JS中进行表单的submit,否则就无法上传文件了,这里我们采用一个迂回的办法,在表单中隐藏一个提交按钮,代码如下:
    <input type=”submit” id=”mysubmit” style=”display:none” />
    然后我们再在checkSubmit函数的最后加上如下代码:
    ……
    $(“mysubmit”).submit();
    ……
    这样,我们通过一个隐藏提交按钮来触发表单的submit事件,这样我们就可以顺利的进行文件上传了。
    第二步,在文件上传成功后,我们再进行参数的提交,文件上传成功的触发函数我们在FancyUpload对象的onComplete上进行定义,不过对于多文件上传的就要定义在onAllComplete上了,我建议全部定义在onAllComplete上,如下:
    onAllComplete:function() {
        $(“你的表单的Id”).submit();
    }
    在这里我们就可以直接调用表单的submit来提交参数了,当然了你也可以采用AJAX提交,那就要看自己的需求了。

3)  上传文件的路径和表单参数的绑定
    由于我们的文件上传和表单参数上传是分成两个部分进行上传的,这就出现了如何将两次上传的参数进行绑定的问题。而且查看官方上的评论,作者也没有给出解决方法,而且该组件只能检测错误时的状态码(00 < status < 300),对于上传成功是无法获取任何返回信息的。目前我的解决方法就是:
    1. 文件上传成功后将路径信息存储以原始文件名为key存储在session中;
    2. 参数进行上传时根据原始文件的名称去从session中获取上传的路径信息

分享到:
评论

相关推荐

    OneupUploaderBundle:此Symfony捆绑包提供了服务器实现,用于使用FineUploader,jQuery File Uploader,YUI3 Uploader,Uploadify,FancyUpload,MooUpload,Plupload或Dropzone处理单个和多个文件上传。 功能包括分块上传,孤儿院,Gaufrette和Flysystem支持

    OneupUploaderBundle 用于Symfony的OneupUploaderBundle添加了对使用以下JavaScript库之一或来处理文件上传...文档的入口点可以在文件Resources/docs/index.md 升级说明 3.0.0版现在支持Symfony 5(对@ ,@ ,@ ,@ 和

    基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)

    基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)

    某汽车联合车间工艺布置图.zip

    某汽车联合车间工艺布置图.zip

    统计学中的因果推断.pdf

    统计学中的因果推断

    轻量级的PHP地址发布页源码.zip

    1:后台登录地址为/admin/login.php,提供便捷的配置入口。 2:默认用户名是admin,密码为password123,首次登录后可。 3:使用方法:上传到虚拟机或服务器并解压,访问首页查看效果, 4:进入后台可编辑3个固定修改链接、添加或删除额外链接、设置底部文字及选择模板。 5:底部文字通过转义处理,不支持HTML,确保输出安全。 6:无论是个人项目还是分享导航,LinkEase都提供简单的解决方案。

    blast_furnace_front_on.png

    blast_furnace_front_on

    wither_rose.png

    j

    h5py-3.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

    该资源为h5py-3.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl,欢迎下载使用哦!

    【数字图像处理】形态学处理与纹理分析技术:边界提取、孔洞填充及组件标记的应用研究

    内容概要:本文档是关于数字图像处理课程作业的报告,主要分为两个部分:形态学处理和纹理分析。形态学处理部分涵盖边界提取、孔洞填充和组件标记三个任务,详细描述了每个任务的具体步骤和方法,如通过形态学方法找到白色图案的内部区域并进行边界提取,利用连通分量标记技术进行孔洞填充,以及采用4邻接和8邻接方式对对象进行组件标记。纹理分析部分则介绍了使用Law's方法获取特征向量的过程,包括卷积和能量计算,还展示了如何用K-means算法对像素进行分类,并提出了一些改进措施,如调整窗口大小、优化K值选择等。 适合人群:具有图像处理基础知识的学生或研究人员,特别是正在学习数字图像处理课程的人士。 使用场景及目标:①帮助学生理解形态学处理的基本概念和技术,如边界提取、孔洞填充和组件标记;②指导学生掌握纹理分析的方法,如Law's方法和K-means聚类算法的应用;③通过实例操作提高学生的实践能力和问题解决能力。 阅读建议:此文档为课程作业报告,内容较为具体和技术化,建议读者先了解基本的形态学处理和纹理分析理论,再结合文档中的具体步骤进行实践操作,以便更好地理解和掌握相关知识。

    MP0 Set up xv6.pdf操作系统基于Docker和QEMU的xv6环境搭建与简单进程通信实验:教学操作系统实践

    内容概要:本文介绍了如何设置xv6操作系统的学习环境。xv6是MIT创建的一个用于教学的类Unix内核示例。文章首先解释了为什么选择Docker作为虚拟化工具,强调了其轻量级的特点,并指导读者安装Docker。接着详细描述了从克隆GitHub仓库到加载Docker镜像的具体步骤,以及如何使用QEMU模拟器在非RISC-V架构上启动xv6。最后提供了一个简单的练习,要求编写一个名为detective的程序,利用UNIX系统调用来查找特定名称的文件,并通过管道在父子进程间通信。 适合人群:具备一定C语言编程能力和系统编程经验的学生或开发者,尤其是对操作系统原理感兴趣的人士。 使用场景及目标:①学习Docker的安装与配置,理解容器化技术的优势;②掌握xv6内核的基本操作,包括编译和运行;③通过完成detective程序,深入理解进程管理、文件系统遍历和进程间通信等操作系统核心概念。 阅读建议:建议读者按照文档逐步实践,确保每一步都能成功执行。由于部分命令和工具基于Linux平台,推荐在Linux环境下进行操作。此外,在动手之前先阅读xv6参考书籍的第一章,有助于更好地理解和完成练习。

    糖化、水罐及CIP工艺流程.rar

    糖化、水罐及CIP工艺流程.rar

    activator_rail_on.png

    activator_rail_on

    液压剪式升降平台(step SolidWorks)设计.rar

    液压剪式升降平台(step SolidWorks)设计.rar

    【操作系统领域】HarmonyOS的Linux内核子集(LOS)技术解析:智能设备核心支撑与未来发展趋势

    内容概要:本文详细介绍了HarmonyOS及其Linux内核子集(LOS)。HarmonyOS是华为自主研发的面向全场景的分布式操作系统,旨在打破国外操作系统垄断,推动国产操作系统发展。LOS作为HarmonyOS的重要组成部分,位于内核层,负责管理硬件资源、内存、文件系统和网络等。LOS具有虚拟内存管理、进程隔离、强大的网络支持、高效的文件系统、多线程编程支持和任务调度机制等技术特点。LOS在智能手机、智能家居设备和智能穿戴设备等领域发挥了重要作用,确保了系统的性能、稳定性和低功耗。与Linux原生内核和鸿蒙微内核相比,LOS在功能特性、性能表现和适用场景上有明显优势,并且与鸿蒙微内核协同工作,共同推动HarmonyOS的发展。未来,LOS将在安全性、性能优化和新功能支持等方面取得更大突破,推动HarmonyOS生态的繁荣发展。 适合人群:对操作系统底层技术感兴趣的开发者、科技爱好者以及从事智能设备相关领域的工程师。 使用场景及目标:①深入了解HarmonyOS及其内核子集(LOS)的技术特点和应用场景;②为开发基于HarmonyOS的智能设备提供理论支持和技术参考;③探索LOS在不同智能设备中的优化和应用,推动智能设备的创新和发展。 其他说明:本文不仅介绍了LOS的技术细节,还探讨了其与鸿蒙微内核的区别和协同工作方式,以及对未来发展的展望。这有助于读者全面理解HarmonyOS的内核架构和技术优势,为未来的开发和研究提供指导。

    第三章习题作业.docx

    第三章习题作业.docx

    openssl-3.5.0-multiple-Kylin-Server-V10-GFB-arm64.tar.gz

    为了解决信创环境下不能连网,因此在Kylin Server V10 下编译了openssl最新版本,而且做成了离线安装的脚本,安装步骤如下所示: 1. 解压软件包 [root@daolian ~]# tar -zxvf openssl-3.5.0-202504152120-multiple-Kylin-Server-V10-GFB-arm64.tar.gz 2. 查看目录中内容 [root@daolian nginx]# ls openssl.tar.gz setup.sh 3.安装 [root@daolian openssl]# ./setup.sh OPENSSL 3.5.0 INSTALL Sucesses 4.查看版本号 root@daolian:~# openssl version -a OpenSSL 3.5.0 8 Apr 2025 (Library: OpenSSL 3.5.0 8 Apr 2025) built on: Tue Apr 15 12:43:51 2025 UTC platform: linux-aarch64 options: bn(64,64)

    模具-Φ146.6药瓶注塑模设计.zip

    模具-Φ146.6药瓶注塑模设计.zip

    h5py-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

    该资源为h5py-3.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl,欢迎下载使用哦!

    基于Python的模仿元气骑士的游戏.zip

    基于Python的模仿元气骑士的游戏

    基于SpringBoot的pc端仿淘宝系统(源码+数据库+万字文档+ppt)520

    基于SpringBoot的pc端仿淘宝系统,系统包含三种角色:管理员、用户,商家主要功能如下。 【用户功能】 首页:浏览系统的主要信息。 商城商品:查看商城中的各类商品,包括商品详情和价格。 商城公告:阅读系统发布的相关公告和通知。 官方客服:与系统提供的官方客服进行在线沟通。 购物车:管理已选购商品,包括添加、删除和结算功能。 个人中心:管理个人信息、查看订单记录等。 【管理员功能】 系统首页:查看系统整体概况。 个人中心:管理个人信息。 商家管理:审核和管理注册商家的基本信息。 用户管理:管理系统注册用户的信息。 商品种类管理:管理商城中的商品分类信息。 商城商品管理:监管和管理商城中的商品信息。 系统管理:管理系统的基本设置和运行参数。 订单管理:查看和处理用户的购物订单。 【商家功能】 系统首页:查看商家相关的概况。 个人中心:管理个人商家信息。 商家管理:编辑和管理商家基本信息。 商城商品管理:管理商家发布的商品信息。 订单管理:查看和处理用户购买商家商品的订单。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以

Global site tag (gtag.js) - Google Analytics