php:利用插件uploadify完成ajax效果的图片上传

可选项
需要参数类型    参数名字          解释
(布尔型)       auto             当文件被添加到队列时,自动上传。
(字符串)       buttonImg          浏览按钮的背景图片路径。
(字符串)       buttonText         默认在按钮上显示的文本。
(字符串)       cancelImg           取消按钮的背景图片路径。
(字符串)       checkScript         用以检查服务器上已存在文件的后台脚本的路径。【译者注:应该是ajax方式】
(字符串)       displayData         在上传过程中显示在队列里的数据类型。
(字符串)       expressInstall        expressInstall.swf文件的路径。
(字符串)       fileDataName        后台脚本中要处理的file域的名称。【译者注:就是type为file的input的name值】
(字符串)       fileDesc            在浏览窗口底部的文件类型下拉菜单中显示的文本。
(字符串)       fileExt              允许上传的文件后缀。【译者注:.jpg/.png等】
(字符串)       folder             上传文件夹的路径,文件上传后将被保存于此。
(整型)          height              浏览按钮的高度。
(布尔型)       hideButton           设置为true将隐藏flash按钮,这样你就可以为下面的div元素定义样式。
(字符串)       method            向后台脚本放送数据的表单方法。
(布尔型)       multi            设置为true将允许多文件上传。
(字符串)      queueID            页面中,你想要用来作为文件队列的元素的id。
(整型)       queueSizeLimit        上传队列中所允许的文件数量。
(布尔型)      removeCompleted     设置为true将自动移除队列中已经完成上传的项目。
(布尔型)      rollover           设置为true将激活浏览按钮的鼠标划过状态。
(字符串)      script            处理文件上传的后台脚本的路径。
(字符串)      scriptAccess        设置在主swf文件中的脚本访问模式。
(JSON)       scriptData         在文件上传时,应该被发送给后台脚本的一个包含name/value键值对以及一些额外信息的json对象。
(整型)       simUploadLimit        允许同时上传的文件数量。
(整型)       sizeLimit           上传文件的大小限制,单位为字节。
(字符串)      uploader           uploadify.swf文件的路径。
(整型)       width            浏览按钮的宽度。
(字符串)      wmode           flash文件的wmode。

事件
(函数)       onAllComplete        当上传队列中的所有文件都完成上传时触发。
(函数)       onCancel          当从上传队列每移除一个文件时触发一次。
(函数)       onCheck          在上传开始之前,如果检测到一个同名文件时触发。
(函数)       onClearQueue        当uploadifyClearQueue()方法被调用时触发。
(函数)       onComplete         每完成一次文件上传时触发一次。
(函数)       onError           当上传返回错误时触发。
(函数)       onInit            当Uploadify实例被载入时触发。
(函数)       onOpen           当上传队列中的一个文件开始上传时就触发一次。
(函数)       onProgress         在上传过程中触发。
(函数)       onQueueFull        当文件数量达到上传队列限制时触发。
(函数)       onSelect          每向上传队列添加一个文件时触发。
(函数)       onSelectOnce       每向上传队列添加一个或一组文件时触发。
(函数)       onSWFReady       当flash文件载入完成时触发。

方法        .uploadify()         创建Uploadify上传组件的一个实例。
          .uploadifyCancel()    从上传队列移除一个文件。如果文件正在上传,该方法将先取消上传,然后再将文件移除出上传队列。
        .uploadifyClearQueue()  将所有文件移除出上传队列,并且取消正在执行的所有上传。
        .uploadifySettings()     改变Uploadify组件的可选参数。
        .uploadifyUpload()     触发上传。

这里会用到一些参数,但是我们并不需要完全的掌握这些参数,用之前看看有哪些参数,倒是自己会用哪些参数就ok。

由于时间有限,我把核心的代码先发出来,供大家参考:

在<head>标签中先应用css样式   <link href="../Plugin/uploadify.css" rel="stylesheet" type="text/css" />路径这里你的可能和我的不一样

接着再在<head>标签中应用js,js代码注意先后顺序,不然会报错。

<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script src="../Plugin/swfobject.js" type="text/javascript"></script>
<script src="../Plugin/jquery.uploadify.v2.1.4.min.js" type="text/javascript"></script>

同样这里路径是改成你自己的路径。uploaddiy是用jquery开发的,那我们就要先应用jquery才可以再使用uploaddiy所以要注意应用js的时候注意先后顺序

接着是核心的html代码

<tr><th scope="row">图 片:</th>
<td>
  <div style="float:left;width:125px;height:35px;">
     <input type="file" name="uploadify" id="uploadify" />   <%--上传时的进度条--%>
   </div>
   <div id="fileQueue" style="float:left;height:35px;"></div>
   <div style="float:left;height:35px;">
     <a href="javascript:$(‘#uploadify‘).uploadifyUpload()" class="btn-lit"><span>上传</span></a>
      <a href="javascript:$(‘#uploadify‘).uploadifyClearQueue()" class="btn-lit"><span>取消上传</span></a>
   </div>
</td>
</tr>
<tr>
     <th scope="row">&nbsp;</th>
     <td><asp:Image ID="pic" runat="server" /></td>  <%--成功上传生成图片预览功能--%>
</tr>

写的时候写在form的table表中

接着我们开始完成控件给我们需要完成的接口代码如下:

//uploadify插件的自定义设置
$(document).ready(function () {
    $("#uploadify").uploadify({
        ‘uploader‘: ‘../Plugin/uploadify.swf‘,
        ‘script‘: ‘UploadImg.ashx‘,
        ‘cancelImg‘: ‘../Plugin/cancel.png‘,
        ‘folder‘: ‘../upload‘,
        ‘buttonText‘: ‘SELECT Pic‘,
        ‘fileExt‘: ‘*.jpg;*.gif,*.png‘,                 //允许上传的文件格式为*.jpg,*.gif,*.png
        ‘fileDesc‘: ‘Web Image Files(.JPG,.GIF,.PNG)‘,  //过滤掉除了*.jpg,*.gif,*.png的文件
        ‘queueID‘: ‘fileQueue‘,
        ‘sizeLimit‘: ‘2048000‘,                         //最大允许的文件大小为2M
        ‘auto‘: false,                                  //需要手动的提交申请
        ‘multi‘: false,                                 //一次只允许上传一张图片
        ‘onCancel‘: funCancel,                          //当用户取消上传时
        ‘onComplete‘: funComplete,                      //完成上传任务
        ‘OnError‘: funError                             //上传发生错误时
    });
});

//用户取消函数
function funCancel(event, ID, fileObj, data) {
    jBox.tip(‘您取消了‘ + fileObj.name + ‘操作‘, ‘info‘);
    return;
}

//图片上传发生的事件
function funComplete(event, ID, fileObj, response, data) {
    //$("#pic").html(‘<img id="pic" runat="server" src=../upload/‘ + response + ‘.jpg style="width:300;height:200px;"/>‘);
    if (response == 0) {
        jBox.tip(‘图片‘ + fileObj.name + ‘操作失败‘, ‘info‘);
        return;
    }
    $("#pic").attr("src", "../upload/" + response).height(200).width(300);
    jBox.tip(‘图片‘ + fileObj.name + ‘操作成功‘, ‘info‘);
    return;
}

//上传发生错误时。
function funError(event, ID, fileObj, errorObj) {
    jBox.tip(errorObj.info);
    return;
}

接着我们来完成一般处理时间的文件,代码如下:

context.Response.ContentType = "text/plain";
        context.Response.Charset = "utf-8";

        HttpPostedFile file = context.Request.Files["Filedata"];
        string uploadPath = HttpContext.Current.Server.MapPath(@context.Request["folder"]) + "\\";

        if (file != null)
        {
            //if (File.Exists(uploadPath + file.FileName))
            //{
            //    context.Response.Write("3");            //文件已经存在
            //    return;
            //}

            string[] fn = file.FileName.Split(‘.‘);
            string ext = fn[fn.Length - 1];
            string filename = DateTime.Now.ToString("yyyyMMddhhmmss")+"."+ext;
            if (!Directory.Exists(uploadPath))
            {
                Directory.CreateDirectory(uploadPath);
            }
            file.SaveAs(uploadPath + filename);
            //下面这句代码缺少的话,上传成功后上传队列的显示不会自动消失
            context.Session[context.Session["userName"].ToString()] = filename;

            context.Response.Write(filename);
        }
        else
        {
            context.Response.Write("0");
        }  

成功上传返回文件的名字,失败的话返回一个0,js不追返回值,如果是0表示失败,如果不是0则动态的给img加载src。

晚点我讲整理出核心的代码供大家下载。敬请关注本贴。

下载地址点击此处

时间: 2024-10-28 14:45:08

php:利用插件uploadify完成ajax效果的图片上传的相关文章

PHP+jQuery+Ajax实现多图片上传介绍

PHP+jQuery+Ajax实现多图片上传介绍: 本文中用到一个Ajax表单提交插件:jqery.form.js,有高人修改了几行代码并改名为:jquery.wallform.js,直接拿来用. 下面就来就来介绍一下这一款功能强大的插件的使用,需要的朋友可以做一下参考. 在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果.用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上,效果图如下: 一.HTML代码: 在页面上放置一个form表单,使用pos

在 PHP 中结合 Ajax 技术进行图片上传

前面几则日志中讲述了在 PHP 中上传文件,相信大家对 PHP 中如何进行文件上传已经初步掌握.本文来继续探讨在 PHP 中上传文件的技术,不同的是,本次上传将仅限于图片文件的上传,并且将采用 Ajax 技术. 本例将要实现这样的效果:当用户选择图片,开始上传后,后台上传完成时,随即会显示到当前页面.由于,从开始上传到上传完成,再到图片显示均在一个页面上 完成(从表面上看).所以使用 Ajax 技术是必须的.但如何使用这些操作在一个页面上来完成呢?考虑到这样的情况,当文件开始上传后,便开始打开

Jersey后端服务接收ajax前端的图片上传

近期的项目里需要在前端上传图片后端接收处理.前端JSP页面使用Ajax上传图片后端使用Jersey框架提供restful接口接收处理图片. 一.前端的处理 jsp页面中图片上传没有使用form表单而是直接使用file类型的input控件 <input type="file" name="file" class="inpTxtA" value="" id="appLogo"/> <input

ajax图片上传(ajaxfileupload.js插件)

向后台交互方式: 1.form表单提交,action="url" 2.ajax异步提交 区别: form在提交之后无法获得后台的回调参数,只能由后台工作人员控制提交成功之后的路径跳转:优点是可以直接提交文件,如:图片.txt文件等: ajax很好的处理字符格式的提交并获取提交成功之后的回调参数,但是无法提交图片. ajax提交图片只能把图片格式转化为进制流模式 解决方式: 1 <script type="text/javascript" src="j

uploadify struts2实现图片上传

uploadify是来自国外的一款优秀的jQuery上传插件,主要功能是批量上传文件,带进度显示. 包括两个版本,一个是Flash的 一个是HTML5的.下面介绍Flash版本如何使用 1.下载 Uploadify Zip 2.解压缩包并上传下列文件到您的网站上的一个文件夹: jquery.uploadify.min.js uploadify.css uploadify-cancel.png uploadify.swf 3.在您使用uploadify页面也不要忘了引入jQuery库 4.在页面引

JS图片上传预览插件制作(兼容到IE6)

其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方法. 了解了一下,其实方法都是大同小异的.大概有以下几种方式: ①订阅input[type=file]元素的onchange事件. 一旦选择的路径被改变就把图片上传至服务器,然后就返回图片在服务器端的地址,并且赋值到img元素上. 缺点:工作量大,有些上传并不是用户最终需要上传的图片,但是这种方式会

在php中使用jquery uploadify进行多图片上传

jquery uploadify是一款Ajax风格的批量图片上传插件,在PHP中使用jquery uploadify很方便,请按照本文介绍的方法和步骤,为你的PHP程序增加jquery uploadify插件的批量上传图片功能. 本文是以dilicms为基础,为其增加图片上传功能. 1.增加数据表dili_fieldtypes新字段:k=>image,V=>图片上传区域(VACHAR): 2.修改application/libraries/dili/Field_behavior.php,在sw

【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示

伴随着JDK1.6一起出现的Servlet3.0标准,使得JSP的文件上传系统不再艰难,此前在JSP的文件上传系统需要<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)类似这样的插件才能完成的文件上传系统,还不支持中文,使得各位程序猿掏空心思才能解决这个问题.现在Servlet3.0对文件上传的方法进行封装,无须分块就可以实现.而且Servlet3.0还不用类似<[Servlet]最简单的Servlet JavaWeb程序>(点击打开链接)在web

推荐ajaxfilemanager for tiny_mce 比较完善的tiny_mce编辑器的图片上传及图片管理插件PHP版 支持中文

tiny_mce编辑器,我觉得挺简洁.好用的,但就是图片上传的插件是收费的,而且网上找了半天也没有找到开源好用的上传插件. 不过功夫不负有心人,终于还就被我找到一款相当满意的插件. 这个插件的名字叫ajaxfilemanager 官方网址是http://www.phpletter.com/DOWNLOAD/ Tinymce Ajax File and Image Manager Tinymce Ajax File and Image Manager Version 1.0 Final Proje