1.样式

2.js

3.后台处理

4.效果图

一.样式

<style>
.divUpload {
position: relative;
} .divUploadFirst {
width: 100px;
height: 36px;
background: #666666;
color: #fff;
text-align: center;
line-height: 36px;
} .file_input {
width: 200px; /*因为file-input在部分浏览器中会自带一个输入框,需要双击才可以点击上传,放大后将其定位到div外面就好啦*/
height: 36px;
position: absolute;
left: -100px;
top: 0;
z-index: 1;
-moz-opacity: 0;
-ms-opacity: 0;
-webkit-opacity: 0;
opacity: 0; /*css属性——opcity不透明度,取值0-1*/
filter: alpha(opacity=0); /*兼容IE8及以下--filter属性是IE特有的,它还有很多其它滤镜效果,而filter: alpha(opacity=0); 兼容IE8及以下的IE浏览器(如果你的电脑IE是8以下的版本,使用某些效果是可能会有一个允许ActiveX的提示,注意点一下就ok啦)*/
cursor: pointer;
}
</style>
  <div class="divUpload">
<div class="divUploadFirst" style="width:82px;height:34px;border-radius:14px;">上传协议</div>
<input type="file" class="file_input" id="txtUpload" onchange="upload()" accept="image/*" multiple >
</div>
  <div class="form-group" style="clear:both">
<div id="images">
</div>
</div>

二 JS

 //上传协议
function upload() {
var uploaderUrl = '@Url.Content("~/PetCase/Upload")';
var files = document.getElementById("txtUpload").files;
var fd = new FormData();
for (var i = ; i < files.length; i++) {
fd.append("file["+i+"]", files[i]);
}
fd.append('caseNum', caseNum);
$.ajax({
url:uploaderUrl,
type :"post",
data:fd,
dataType: "json",
cache: false,//上传文件无需缓存
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false,
success:function(data){
if(data.length >){
for (var i = ; i < data.length; i++) {
imgPath.push(data[i].imgpath); var html = '<div style="width:200px;float:left;margin-left: 5px;cursor:pointer"> <div class="sh" ></div><div class="img1"><img src="' + data[i].imgpath + '" style="width:200px;" /></div></div>'
$("#images").append(html);
}
addPichtml();
}
},
error:function(){
layer.msg('上传发生错误.');
}
});
}
function addPichtml() {
$(".sh").bind('click', function () {
var $img = $(this).parent().find("img");
var ipath = $img.attr("src");
for (var i = ; i < imgPath.length; i++) {
if (imgPath[i] == ipath) {
imgPath.splice(i, );
$(this).parent().remove();
DelImgPath(ipath);
}
}
}) $(".img1").bind('click', function () {
var $img = $(this).parent().find("img");
var ipath = $img.attr("src");
for (var i = ; i < imgPath.length; i++) {
if (imgPath[i] == ipath) {
layer.open({
type: ,
title: "协议",
content: '<div><img src="' + ipath + '" /></div>',
maxmin: true,
area: [ + "px", + "px"]
})
}
}
}) }

三 后台处理

[HttpPost]
public ActionResult Upload(HttpPostedFileBase Filedata, string caseNum)
{
// 没有文件上传,直接返回
//if (Filedata == null || string.IsNullOrEmpty(Filedata.FileName) || Filedata.ContentLength == 0)
//{
// return HttpNotFound();
//} #region 另外一种方式上传
if (Request.Files == null || Request.Files.Count == )
{
return HttpNotFound();
} List<object> result = new List<object>();
for (int i = ; i < Request.Files.Count; i++)
{
Filedata = Request.Files[i];
#endregion string FileEextension = Path.GetExtension(Filedata.FileName);
string uploadYear = DateTime.Now.Year.ToString();
string uploadDate = DateTime.Now.Date.ToString("MMdd"); // string dirpath = System.Configuration.ConfigurationManager.AppSettings["WebTransferHospitalImgDirPath"];
string filepath = System.Configuration.ConfigurationManager.AppSettings["UploadProtocolPath"];
string strGUID = System.Guid.NewGuid().ToString();
strGUID = DateTime.Now.ToString("yyyMMddHHmmssfffffff")+Guid.NewGuid();//上传的图片按上传时间的先后来命名,显示再按命名来排序 string fullFileName = Server.MapPath("~/UploadFile/UploadProtocol") + "/" + uploadYear + "/" + uploadDate + "/" + caseNum + "/" + strGUID + FileEextension;
string webPath = filepath + "/" + uploadYear + "/" + uploadDate + "/" + caseNum + "/" + strGUID + FileEextension; //创建文件夹,保存文件
string path = Path.GetDirectoryName(fullFileName);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
} Filedata.SaveAs(fullFileName); var data = new { imgpath = webPath };
result.Add(data);
} return Json(result, JsonRequestBehavior.AllowGet);
}

四 效果图

上传文件,不依赖 Jquery flash 插件,用到HTML5 input 新属性实现过滤文件格式、同时上传多个文件的更多相关文章

  1. web 表单方式上传文件方法(不用flash插件)

    原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...

  2. HTML5 input date属性引起的探索——My97DatePicker(日期选择插件)

    不得不说H5的input date属性真的好用,之前我写的http://www.cnblogs.com/tu-0718/p/6729274.html这篇博客里面也有提到,不过虽然移动端对H5的支持还是 ...

  3. 使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...

  4. 分享一款超棒的jQuery旋钮插件 - jQuery knob

    转自:http://www.cnblogs.com/gbin1/archive/2012/05/08/2489908.html 在线演示  本地下载 如果你也在寻找一款生成漂亮旋钮(knob)的jQu ...

  5. jquery uploadify插件多文件上传

    1.jquery uploadify 下载:http://www.uploadify.com/ 2.安装:解压后拷贝的工程目录下面,如:WebRoot/uploaddify 3.配置项说明: uplo ...

  6. jquery 实现ajax 上传文件的功能(使用插件 ajaxfileupload)

    js文件的下载地址 : http://files.cnblogs.com/wangqc/ajaxfileupload.js 页面代码: <html>    <!-- 引入相关的js文 ...

  7. 使用jQuery.FileUpload插件和服Backload组件自定义上传文件夹

    在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? □ 在web.config中配置 1: <configuration> 2: <conf ...

  8. 利用Jquery使用HTML5的FormData属性实现对文件的上传

    1.利用Jquery使用HTML5的FormData属性实现对文件的上传 在HTML5以前我们如果需要实现文件上传服务器等功能的时候,有时候我们不得不依赖于FLASH去实现,而在HTML5到来之后,我 ...

  9. Uploadify & jQuery.imgAreaSelect 插件实现图片上传裁剪

    在网站中需要一个图片上传裁剪的功能,借鉴这篇文章 Ajax+PHP+jQuery图片截图上传 的指点,找到了jquery.imgAreaSelect这个不错插件,能对图片进行自定义区域选择并给出坐标, ...

随机推荐

  1. Harbor 搜索镜像及查看 tag

    在我们搭建完 Harbor 后: https://www.cnblogs.com/klvchen/p/9482153.html 如果想要通过 API 获取 Harbor 上面的镜像及 tag 可以使用 ...

  2. 2018-02-06 编程猫IDE体验:对Scratch的改进

    前两天偶遇编程猫推介(为什么没有中文的编程?), 第一眼感觉像Scratch, 求证之下确实, 并且据说有改良. 今天非常粗浅地尝试一下, 限于水平没有做出很炫的效果, 不过颇有些发现. 首先上最终效 ...

  3. python之while循环/格式化输出/运算符/初始编码/成员变量

    一.主要内容:1.while 循环 (难点)while 条件: 循环体 break: 直接跳出循环continue:停止当前本次循环,继续执行下一次循环.不会中断循环能让循环退出:(1)break ( ...

  4. opencv学习网站[国外网站]+ 各种学习资料

    1.Learn OpenCV 使用C++和python和opencv结合编写的教程,上面有丰富的小实验,并且有完整的源码. 2.pyimagesearch python+opencv编写的实例教程,有 ...

  5. 基于InfluxDB实现分页查询功能

    InfluxDB作为时序数据库中的翘楚,应用范围非常广泛,尤其在监控领域. 最近做了一个功能,将InfluxDB中的数据查询出来后,在前台分页展现,比如每页10条,一共100页,可以查看首页.末页,进 ...

  6. Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机

    解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机   by:授客 QQ:1033553122 测试环境 java下载地址:http://www ...

  7. cmake:善用find_package()提高效率暨查找JNI支持

    cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这 ...

  8. ​《数据库系统概念》4-DDL、集合运算、嵌套子查询

    一.DDLa) SQL Data DefinitionSQL的基本数据类型有char(n).varchar(n).int.smallint.numeric(p,d).real,double preci ...

  9. TraceView工具的使用

    一.TraceView工具如何使用 TraceView有4种启动/关闭分析方式: (1) 第一种使用方法演示 1. 选择跟踪范围 在想要根据的代码片段之间使用以下两句代码 Debug.startMet ...

  10. linux上文件内容去重的问题uniq/awk

    1.uniq:只会对相邻的行进行判断是否重复,不能全文本进行搜索是否重复,所以往往跟sort结合使用. 例子1: [root@aaa01 ~]# cat a.txt 12 34 56 12 [root ...