`

uploadify上传图片

阅读更多

上传图片要加个进度条,找到了一个jquery插件uploadify,下载了最新版3.1

由于小弟是第一次用这个插件,所以不是很懂,于是就去网上找了资料,坑爹开始了。

我找到了个这个网站http://www.phptogether.com/uploadifydoc/

还以为爽到了,没想到这网站根本不靠谱,被坑的好惨。

还是靠自己吧,打开下载的uploadify的js,别不要被一大堆的东东吓到,咱们看关键的东东。

这个插件用的是swfupload这个上传插件,就是它的修改版

找到这么一行

var handlers = {

后面接的都是方法了

例如onSelect : function(file) {

这个方法就是当选择了图片了触发的事件

关键的是onUploadComplete : function(file) {

这个方法是当图片上传完成后触发的事件,而不是那网站说的onComplete

其他方法就不多说明了,看方法名基本就知道是做什么用的

再在页面调用它

 

$(function() {

 $('#file_upload').uploadify({

 swf           : '/js/uploadify/uploadify.swf',

     uploader      : 'http://up.6v.com/blog/uploadAvatar',

     buttonText:'修改头像',

     formData:{blogid:<?=$bloginfo ["Blogid"]?>},

     onUploadSuccess  : function(file, data, response) {

     data=eval("("+data+")");

     showcut( data);

       }

 });

});

这里的formData是指同文件一起发送的数据,默认是post

因为它用的是swfupload,所以是支持跨域的,在根目录下建个crossdomain.xml文件

 

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

   <allow-access-from domain="*.qweibo.com" />//此处是你支持跨的域名

</cross-domain-policy>

完成这些就差不多了,还得靠自己啊,网站有时太坑人了

 (实例:www.52tzj.com)

 

设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://www.static-xxx.nu/uploader/uploadifyLang_en.js',//语言包的路径,能设置所有的提示文字
swf: 'http://www.static-xxx.nu/uploader/uploadify.swf',//[必须设置]swf的路径
uploader: '/uploadify/galleri.php',//[必须设置]上传文件触发的url
auto:false,//文件选择完成后,是否自动上传
buttonText:'Välj Filer',//上传按钮的文字
height: 30,//上传按钮的高和宽
width: 120,
buttonCursor: 'pointer',//上传鼠标hover后Cursor的形状
cancelImage: 'http://www.static-xxx.nu/uploadify-cancel.png',//[必须设置]取消图片的路径
checkExisting:'/uploader/uploadify-check-existing.php',//检查上传文件是否存,触发的url,返回1/0
debug: true,//debug模式开/关,打开后会显示debug时的信息
fileObjName:'file',
fileSizeLimit : 0,//文件的极限大小,以字节为单位,0为不限制。1MB:1*1024*1024
fileTypeDesc: 'Bild JPG',//允许上传的文件类型的描述,在弹出的文件选择框里会显示
fileTypeExts: '*.jpg',//允许上传的文件类型,限制弹出文件选择框里能选择的文件
method: 'post',//和后台交互的方式:post/get
multi: true,//是否能选择多个文件
queueID: 'fileQueue',//显示上传文件队列的元素id,可以简单用一个div来显示
queueSizeLimit : 999,//队列中允许的最大文件数目
progressData : 'all', // 'percentage''speed''all'//队列中显示文件上传进度的方式:all-上传速度+百分比,percentage-百分比,speed-上传速度
removeCompleted : true,//上传成功后的文件,是否在队列中自动删除
removeTimeout: 3,
requeueErrors : true,
postData: {},//和后台交互时,附加的参数
preventCaching : true,
transparent: true,
successTimeout : 30,//上传时的timeout
uploadLimit:999//能同时上传的文件数目
 
设置的事件:

onDialogClose : function(swfuploadifyQueue) {//当文件选择对话框关闭时触发
  if( swfuploadifyQueue.filesErrored > 0 ){
  alert( '添加至队列时有'
  +swfuploadifyQueue.filesErrored
  +'个文件发生错误n'
  +'错误信息:'
  +swfuploadifyQueue.errorMsg
  +'n选定的文件数:'
  +swfuploadifyQueue.filesSelected
  +'n成功添加至队列的文件数:'
  +swfuploadifyQueue.filesQueued
  +'n队列中的总文件数量:'
  +swfuploadifyQueue.queueLength);
  }
}

onDialogOpen : function() {//当选择文件对话框打开时触发
  alert( 'Open!');
}

 

onSelect : function(file) {//当每个文件添加至队列后触发
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus);
}

 

onSelectError : function(file,errorCode,errorMsg) {//当文件选定发生错误时触发
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 错误代码: ' + errorCode
  + ' - 错误信息: ' + errorMsg);
}

 

onQueueComplete : function(stats) {//当队列中的所有文件全部完成上传时触发
  alert( '成功上传的文件数: ' + stats.successful_uploads
  + ' - 上传出错的文件数: ' + stats.upload_errors
  + ' - 取消上传的文件数: ' + stats.upload_cancelled
  + ' - 出错的文件数' + stats.queue_errors);
}

 

onUploadComplete : function(file,swfuploadifyQueue) {//队列中的每个文件上传完成时触发一次
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored
  + ' - 错误信息: ' + swfuploadifyQueue.errorMsg
  + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected
  + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued
  + ' - 队列长度: ' + swfuploadifyQueue.queueLength);
}

 

onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) {//上传文件出错是触发(每个出错文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 错误代码: ' + errorCode
  + ' - 错误描述: ' + errorMsg
  + ' - 简要错误描述: ' + errorString
  + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored
  + ' - 错误信息: ' + swfuploadifyQueue.errorMsg
  + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected
  + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued
  + ' - 队列长度: ' + swfuploadifyQueue.queueLength);
}

 

onUploadProgress : function(file,fileBytesLoaded,fileTotalBytes,
queueBytesLoaded,swfuploadifyQueueUploadSize) {//上传进度发生变更时触发
alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 当前文件已上传: ' + fileBytesLoaded
  + ' - 当前文件大小: ' + fileTotalBytes
  + ' - 队列已上传: ' + queueBytesLoaded
  + ' - 队列大小: ' + swfuploadifyQueueUploadSize);
}

 

onUploadStart: function(file) {//上传开始时触发(每个文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus );
}

 

onUploadSuccess : function(file,data,response) {//上传完成时触发(每个文件触发一次)
  alert( 'id: ' + file.id
  + ' - 索引: ' + file.index
  + ' - 文件名: ' + file.name
  + ' - 文件大小: ' + file.size
  + ' - 类型: ' + file.type
  + ' - 创建日期: ' + file.creationdate
  + ' - 修改日期: ' + file.modificationdate
  + ' - 文件状态: ' + file.filestatus
  + ' - 服务器端消息: ' + data
  + ' - 是否上传成功: ' + response);
}

分享到:
评论
10 楼 wenjundiandian 2012-11-30  
home198979 写道
wenjundiandian 写道
home198979 写道
wenjundiandian 写道
如果要验证文件已存在就不上传该在那个方法里面写? 

判断文件是否存在,肯定要把文件上传到指定的服务后再去作对比,需要做一个文件服务器。

不用这么麻烦了。。。onselect 里面可以用ajax验证。。。验证文件在不在就行了。。。。

你那判断文件在不在是通过查看文件名吗?文件一样的不一定内容一样啊,最典型的就是图片,一样的图片名,但其实是两张完全不同的图片。

怎么判断文件内容  ? 图片怎么判断内容一样  ? 大小一样?   求大神解释。。。
9 楼 home198979 2012-11-30  
wenjundiandian 写道
home198979 写道
wenjundiandian 写道
如果要验证文件已存在就不上传该在那个方法里面写? 

判断文件是否存在,肯定要把文件上传到指定的服务后再去作对比,需要做一个文件服务器。

不用这么麻烦了。。。onselect 里面可以用ajax验证。。。验证文件在不在就行了。。。。

你那判断文件在不在是通过查看文件名吗?文件一样的不一定内容一样啊,最典型的就是图片,一样的图片名,但其实是两张完全不同的图片。
8 楼 wenjundiandian 2012-11-30  
home198979 写道
wenjundiandian 写道
如果要验证文件已存在就不上传该在那个方法里面写? 

判断文件是否存在,肯定要把文件上传到指定的服务后再去作对比,需要做一个文件服务器。

不用这么麻烦了。。。onselect 里面可以用ajax验证。。。验证文件在不在就行了。。。。
7 楼 home198979 2012-11-27  
wenjundiandian 写道
如果要验证文件已存在就不上传该在那个方法里面写? 

判断文件是否存在,肯定要把文件上传到指定的服务后再去作对比,需要做一个文件服务器。
6 楼 wenjundiandian 2012-11-27  
如果要验证文件已存在就不上传该在那个方法里面写? 
5 楼 Jeven_lu 2012-09-15  
我也被那个网站坑了,那个版本api太老了
4 楼 jackyrong 2012-08-28  
问下,3.1没了langfile语言包的属性,那要去哪里设置中文提示呢?
3 楼 jackyrong 2012-08-23  
'onUploadSuccess': function(file,data,response)  {

      alert("hello"+response.responseText);
       $('<li></li>').appendTo('.files').text(response);
  }


也不行,DEBUG输出有东西,后台的JSON没办法输出到前台呢
2 楼 home198979 2012-08-23  
jackyrong 写道
想问下,我的是struts2+uploadfit 3.1,文件能上传成功,
上传的时候,另外用formdata传递了表单的其他参数到sturts2的后台,
struts2的后台也能接受到文件,只不过struts2返回的是一个json(把表单的
另外的传递的参数原样子以JSON输出到前端而已,在uploadfiy
中,DEBUG模式下,也看到有:
File ID: SWFUpload_0_0 Response Received: true Data: {"version":"fdgfg"}

的字样,但是用:
'onUploadSuccess'  : function(event, ID, fileObj, response, data) {
  var mp3 = eval('(' + data + ')'); 
alert(data);
   alert('The file ' + fileObj.name + ' was successfully uploaded with a response of ' + response + ':' + data);
 
  }

打印出来的data和response都是空的?

onUploadSuccess : function(file,data,response) {//上传完成时触发(每个文件触发一次)你function里的参数有问题
1 楼 jackyrong 2012-08-22  
想问下,我的是struts2+uploadfit 3.1,文件能上传成功,
上传的时候,另外用formdata传递了表单的其他参数到sturts2的后台,
struts2的后台也能接受到文件,只不过struts2返回的是一个json(把表单的
另外的传递的参数原样子以JSON输出到前端而已,在uploadfiy
中,DEBUG模式下,也看到有:
File ID: SWFUpload_0_0 Response Received: true Data: {"version":"fdgfg"}

的字样,但是用:
'onUploadSuccess'  : function(event, ID, fileObj, response, data) {
  var mp3 = eval('(' + data + ')'); 
alert(data);
   alert('The file ' + fileObj.name + ' was successfully uploaded with a response of ' + response + ':' + data);
 
  }

打印出来的data和response都是空的?

相关推荐

    Uploadify上传图片实列

    在本文中,我们将深入探讨Uploadify的工作原理、配置选项以及如何在实际项目中实现图片上传功能。 1. **Uploadify概述** Uploadify是一个基于JavaScript和Flash的文件上传组件,它可以实现在不刷新页面的情况下...

    Uploadify图片上传(C#)

    在“Uploadify图片上传(C#)”这个项目中,我们将探讨如何结合C#后端技术和Uploadify前端插件,实现一个高效、用户友好的图片上传系统。首先,Uploadify的核心特性包括: 1. **多文件选择**:Uploadify支持用户通过...

    struts2 uploadify 上传图片

    在Struts2中集成Uploadify,可以创建一个强大的图片上传系统,允许用户方便地上传图片到服务器,并将这些图片保存到指定的路径。以下是关于如何实现这个功能的详细步骤和关键知识点: 1. **环境准备**: - 首先...

    thinkphp uploadify图片批量上传

    "thinkphp uploadify图片批量上传"是一个基于ThinkPHP框架和Uploadify插件实现的解决方案,旨在为用户提供方便快捷的图片上传体验。下面我们将详细探讨这个主题。 首先,**ThinkPHP** 是一个轻量级的PHP开发框架,...

    uploadify 图片上传代码

    - **社交媒体**:在个人资料页面中,用户可以使用Uploadify上传头像或其他个人照片。 - **电商网站**:商家可以上传商品图片,客户可以上传订单图片或退货凭证。 - **博客/论坛**:用户可以上传图片作为帖子的配...

    使用uploadify上传图片

    在ASP.NET应用中,使用Uploadify插件进行图片上传是一种常见的方法,它可以提供用户友好的体验,如实时进度条展示,提升用户体验。Uploadify是一款基于jQuery的文件上传插件,它支持多文件选择、预览、进度条显示等...

    MVC4下对话框中使用Uploadify上传多个文件

    在本文中,我们将深入探讨如何在ASP.NET MVC4框架下,利用JQuery Dialog插件创建一个弹出对话框,并在其中集成Uploadify组件实现多文件上传功能。这将涉及前端JavaScript库、后端C#处理逻辑以及数据库交互,旨在提供...

    uploadify批量上传实例

    Uploadify适用于需要用户提交多个文件的场景,如社交媒体平台的图片分享、在线文档协作平台、电商平台的商品图片上传等。通过合理的配置和定制,可以满足不同项目的具体需求。 8. **现代替代方案**: 虽然...

    uploadify多图片(文件)上传

    这是本人写的一个基于uploadify-3.2.1插件上传图片(文件)的Web项目,采用Struts2框架,实现了多图片(文件)上传,并可显示上传进度,不会刷新当前页面,上传成功后,立即显示所上传的图片(文件)。下载解压后...

    ThinkpHP整合uploadify插件批量上传图片

    在IT行业中,尤其是在Web开发领域,批量上传图片是一项常见的需求,尤其对于内容丰富的网站和应用来说更为重要。本文将详细讲解如何使用ThinkPHP框架结合uploadify插件来实现这一功能,包括图片的预览、删除以及...

    spring mvc uploadify上传文件

    在本文中,我们将深入探讨如何使用Spring MVC框架与uploadify插件进行文件上传,特别是针对图片的上传。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而uploadify是一款前端JavaScript插件,使得用户...

    图片上传插件 uploadify

    7. **文件类型限制**:可以通过配置限制可上传的文件类型,如只允许上传图片或特定格式的文档。 8. **文件大小限制**:可以设定单个文件或所有文件的总大小限制。 9. **回调函数**:Uploadify提供了一系列的事件回...

    C# 使用uploadify实现图片批量上传

    本话题聚焦于如何利用C#结合uploadify插件实现图片的批量上传功能。uploadify是一个流行的JavaScript库,它使得用户能够在网页上实现文件的拖放式上传,包括图片。以下是关于这一主题的详细知识: 1. **Uploadify...

    fileupload+uploadify上传demo

    "fileupload+uploadify上传demo"是一个实例,它结合了两个流行的JavaScript库——FileUpload和Uploadify,以提供更高效、用户友好的文件上传体验。以下是对这个Demo的详细解释和相关知识点的阐述。 FileUpload是...

    uploadify多图上传实例

    Uploadify是一款基于jQuery的文件上传插件,它允许用户批量上传文件,特别是图片,提供了一种用户友好的交互体验。在本文中,我们将深入探讨如何在ASP.NET环境中实现一个基于Uploadify的多图上传实例。 【描述】:...

    uploadify 图片上传

    Uploadify是一款广泛应用于网页端的文件上传插件,尤其适合处理图片上传的场景。它以其易用性、自定义能力和良好的用户体验而受到开发者们的青睐。本文将深入探讨Uploadify的工作原理、配置选项以及如何在实际项目中...

    uploadify上传

    **标题:“uploadify上传”** **关键词:jsp, uploadify, 文件上传** **正文:** 在Web开发中,文件上传是一项常见的功能,特别是在用户需要提交图片、文档等数据时。`uploadify`是一款基于JavaScript和Flash的...

    uploadify多文件图片异步上传

    在这个“uploadify多文件图片异步上传”项目中,我们将探讨如何利用Uploadify与C#后端配合,实现图片的批量、非阻塞式上传。 首先,我们需要在前端页面集成Uploadify插件。这通常涉及到在HTML代码中引入Uploadify的...

    uploadify 3.0 上传 php批量上传 加水印和图片等比缩截取

    综上所述,Uploadify 3.0 是一个强大的文件上传解决方案,尤其适合图片处理需求,其批量上传、水印添加、等比缩放和截取功能大大提升了用户体验和工作效率。在实际开发中,需要结合后端技术如PHP来实现更复杂的处理...

Global site tag (gtag.js) - Google Analytics