uploadify上传图片(限制最多五张)
项目中遇到图片上传的情况,好多都是使用服务器上传控件进行上传的,很是不爽.
然后在网上找到了uploadify的方法,自己总结和修改后分享给大家.
项目文档预览:

1.引用原有css和js
<link href="../css/bootstrap.min.css" rel="stylesheet" />
<link href="../css/bootstrap-responsive.min.css" rel="stylesheet" />
<script src="../uploadify/jquery-1.4.1.min.js"></script>
<link href="../uploadify/uploadify.css" rel="stylesheet" />
5 <script src="../uploadify/jquery.uploadify.min.js"></script>
2.HTML代码:
<div class="img_setting">
<div class="pic_demo">
</div>
<div class="upload_style">
<input type="file" name="upload_file" id="upload_file" />
</div>
7 </div>
3.为HTML代码添加样式
1 <style>
2 .uploadify-queue {
3 display: none;
4 }
5
6 .img_setting {
7 margin: auto;
8 padding: 2px;
9 }
.pic_demo {
margin: auto;
padding: 10px;
float: left;
}
.upload_style {
padding: 10px;
margin: ;
}
.imgBox {
display: inline;
display: inline-block;
padding: ;
position: relative;
margin: 10px 10px ;
line-height: 120px;
background-color: #c2c2c2;
}
.imgBox p {
height: auto;
display: none;
position: absolute;
left: ;
bottom: ;
}
.imgBox input {
line-height: 14px;
float: left;
font-size: 12px;
width: 20px;
}
.imgBox img {
width: 130px;
max-height: 130px;
vertical-align: middle;
}
.imgBox .editImg {
position: absolute;
left: ;
top: ;
width: 30px;
height: 30px;
line-height: 30px;
text-align: center;
display: none;
border: 1px solid #c2c2c2;
background-color: #fff;
font-size: 20px;
}
.imgBox .delImg {
position: absolute;
right: ;
top: ;
width: 30px;
height: 30px;
line-height: 30px;
text-align: center;
display: none;
border: 1px solid #c2c2c2;
background-color: #fff;
font-size: 20px;
}
80 </style>
4.配置js:
1 <script>
2 $(function () {
3 var file_count = ;
4 var num = ;
5 $("#upload_file").uploadify({
6 'swf': '../uploadify/uploadify.swf',//指定swf文件
7 'uploader': '../uploadify/uploadifyUpload.ashx',//调取后台处理方法
8 'folder': '../UploadFiles/images',//图片保存路径
9 'fileTypeExts': '*.gif; *.jpg; *.png',//文件上传类型后缀,不符合时有提醒
'fileSizeLimit': "2MB",//上传文件大小限制数
'auto': true,//选择后自动上传,默认值为true
'multi': false,//设置上传时是否可以选择多个,true可以,false禁止选中多个
'method': 'post',//提交方式(get或者post),默认是post
//'buttonText': '选择文件',
'buttonImage': '../uploadify/image/add.png',
'width': '128px',
'height': '128px',
'removeCompleted': true,
'removeTimeout': ,
'uploadLimit': ,//允许连续上传的次数,超过会提示
'onUploadSuccess': function (file, data, respone) {
var arr = data.split('|');
var chgDisplay = $('.pic_demo');//div类名
picDispaly({
div: chgDisplay,
url: arr[]
});
function picDispaly(obj) {
var img = new Image();
img.src = "../UploadFiles/images/" + obj.url;
$(img).attr("data-url", obj.url);
var imgList = $('<div class="imgBox"><span class="editImg"><i class="icon icon-edit"></i></span><span class="delImg">×</span><p class="imgInfo"><input type="text" name="imgIndex" class="imgIndex" value="' + num + '" /></p></div>');
num += ;
file_count += ;
imgList.append(img);
$(obj.div).append(imgList);
}
chgDisplay.find('.imgBox').mouseenter(function (e) {
$(this).find('.delImg,.editImg').show();
}).mouseleave(function (e) {
$(this).find('.delImg,.editImg,.imgInfo').hide();
});
chgDisplay.find('.editImg').click(function (e) {
$(this).parent().find('.imgInfo').show();
});
chgDisplay.find('.delImg').click(function (e) {
$(this).parent().remove();
file_count -= ;
if (file_count <= ) {
$('#upload_file').show();
}
});
if (file_count > ) {
$('#upload_file').hide();
}
},
'onCancel': function (event, queueId, fileObj, data) {
},
'onUploadError': function (file, errorCode, errorMsg, errorString) {
}
});
});
67 </script>
5.原有的jquery.uploadify.min.js中略微有些修改:

6.一般处理程序uploadifyUpload.ashx:
1 public class uploadifyUpload : IHttpHandler {
2
3 public void ProcessRequest(HttpContext context)
4 {
5 context.Response.ContentType = "text/plain";
6 context.Response.Charset = "utf-8";
7 HttpFileCollection file = HttpContext.Current.Request.Files;
8 string result = "";
9 string uploadPath = context.Server.MapPath("../UploadFiles/images"+"\\");
if (file != null)
{
try
{
if (!System.IO.Directory.Exists(uploadPath))
{
System.IO.Directory.CreateDirectory(uploadPath);
}
DateTime dtnow = System.DateTime.Now;
string filename = dtnow.Year.ToString() + dtnow.Month.ToString() + dtnow.Day.ToString() + dtnow.Hour.ToString() + dtnow.Minute.ToString() + dtnow.Second.ToString() + dtnow.Millisecond.ToString();
string ExtName = getFileExt(file[].FileName).ToUpper();
filename += "." + ExtName;
file[].SaveAs(uploadPath + filename);
result = "1|" + filename + "";
}
catch
{
result = "0|";
}
}
else
{
result = "0|";
}
context.Response.Write(result); //标志位1标识上传成功,后面的可以返回前台的参数,比如上传后的路径等,中间使用|隔开
}
private string getFileExt(string fileName)
{
if (fileName.IndexOf(".") == -)
return "";
string[] temp = fileName.Split('.');
return temp[temp.Length - ].ToLower();
}
public bool IsReusable {
get {
return false;
}
}
51 }
6成果:


uploadify上传图片(限制最多五张)的更多相关文章
- 调试台自动多出现一个'' ,我 用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个''
对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香! 15:54 2016/3/12用uploadify上传图片时,在给页面写入一个返回值为图片名称的变量的值的时候值的前面始终多出现一个' ...
- MVC中使用jquery uploadify上传图片报302错误
使用jquery uploadify上传图片报302错误研究了半天,发现我上传的action中有根据session判断用户是否登录,如果没有登录就跳到登陆页,所以就出现了302跳转错误.原来更新了fl ...
- MVC 中使用uploadify上传图片遇到的蛋疼问题
MVC 中使用uploadify上传图片遇到的蛋疼问题 初次使用uploadify上传图片,遇到了一些比较纠结的问题,在这里和大家分享下,有不对的地方还望大神多多指教,希望对刚接触的朋友有所帮助,文采 ...
- 五张图概括 什么是 ASP 、 ASP.NET (Web Pages,Web Forms ,MVC )
当你看懂下面这五张图,我相信你对于学习.NET Web开发路线将不陌生! 来源: http://www.w3 ...
- uploadify上传图片的使用
一:引用jquery.uploadify.js 二:代码 <body> <table> <tr> <td style="width: 15%; te ...
- uploadify上传图片
1.实现源代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...
- ASP.NET-权限管理五张表
ASP.NET 权限管理五张表 权限管理的表(5张表) 每个表里面必有的一些信息 序号 名称 字段 类型 主键 默认值 是否为空 备注 1 用户ID ID INT 是 ...
- uploadify上传图片的类型错误的解决办法
大家在做开发的过程中,相信很多人都会使用到uploadify插件来上传图片,但是这个插件也有不完美的地方. 我曾多次遇到过这样一个问题:上传的图片类型明明是没有问题的,但是在上传的时候总是会报错:图片 ...
- 使用uploadify上传图片时返回“Cannot read property 'queueData' of undefined”
在使用uploadify插件上传图片时,遇到一个比较坑的错误:上传时提示“Cannot read property 'queueData' of undefined”. 遇到这个问题有点无语,因为这个 ...
随机推荐
- linux进程与端口查看命令
查看程序对应进程号:ps –ef|grep 进程名 查看进程号所占用的端口号:netstat –nltp|grep 进程号 使用lsof命令: lsof –i:端口号
- 锋利的Jquery解惑系列(三)------ 各路选择器大聚会
申明:初次学习Jquery的选择器时只记得几个和css选择器类似的几个,在这里列出书上写上的各路选择器方便以后的查询和现在的学习 所有例子都来自书上 测试画面: 一.基本选择器 #id, $(&quo ...
- ubuntu 安装 桌面 awesome
受了ubuntu 12.04自带的桌面,运行太卡了 http://www.linuxzen.com/awesometmuxgnomedoda-zao-gao-xiao-linuxzhuo-mian-h ...
- Shell脚本——DNS自动部署
详细说明查看: (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释 #! /bin/bash IP="10.10 ...
- 文件操作 系统备份和还原,压缩,解压 tar dump/restore
基本操作命令: ls -a 显示指定目录下的目录和文件,包括隐藏的文件和目录 ls -l 将文件和目录详细列出来,包括文件状态,权限,拥有者,文件名,文件大小等 改变工作目录命令 cd cd .. 进 ...
- [DevExpress][TreeList]节点互斥
关键代码: /// <summary> /// 节点互斥同步 /// 说明 /// eg: ///TreeListNode _node = e.Node; ///_node.SyncMut ...
- Oracle数据库小知识,改数据库数据
在一张表上面右键-->查询数据,会生成sql语句,表后面带有t,表示模糊查询, 后面跟上for update之后,执行语句-->小锁(编辑数据)就可以修改数据里面的数据了,修改之后--&g ...
- citrix xen server 虚拟机无法关闭的问题
悲剧的一台windows的虚拟机无法重启无法关机.如下图,一直卡住不动. 首先找到这台机器: [root@xenserver- xen]# xe vm-list name-label=-vss\ se ...
- Entity Framework Code First 映射继承关系
转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code Fi ...
- iOS开发之自定义控制器切换
iOS8以后, 苹果公司推出了UIPresentationController, 通过其(presentedController 和 presentingController)来控制modal控制器操 ...