HTML代码:

<div>
<div>
<input type="file" style="display:none" id="files" multiple="multiple" accept="image/*"/>
<input type="button" value="点击上传" id="btnfile" /> <input type="button" value="确认提交" id="btnupload" />
</div>
<div class="imgpreview"> </div>
</div>

然后添加点样式:

<style>
#btnfile, #btnupload {
width: 120px;
height: 30px;
background: #2ECC71;
text-align: center;
margin: 10px auto;
border: none;
color: #f5f4f4;
border-radius: 15px;
outline: none;
font-size: 14px;
} .imgpreview {
width: %;
height: auto;
display: flex;
flex-wrap: wrap;
} .delete {
display: none;
position: absolute;
cursor: pointer;
z-index: ;
top: 0px;
right:1px;
} .imgpreview > div {
width: %;
height: auto;
margin-left: 5px;
position: relative;
} .imgpreview > div > img {
width: %; } .imgpreview > div:hover .delete {
display: block;
} .imgpreview > div :hover {
opacity: 0.4;
color: #fff;
background: rgba(,,,0.5);
position: relative;
} </style>

js代码:

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function () {
var formdata = new FormData(); $("#btnfile").click(function () {
$("#files").trigger("click");
});
$("#files").change(function (e) {
var allfile = e.target.files;
var name = '', div = '', image = '';
for (var i = ; i < allfile.length; i++) {
var first = allfile[i];
var reader = new FileReader();
reader.readAsDataURL(first);
reader.onloadend = (function (i) {
var div = $("<div><span class=\"delete\">X</span></div>");
var img = $("<img/>");
img.attr("src", this.result);
div.append(img);
$(".imgpreview").append(div);
formdata.append("uploadfile", first)
});
};
}) $("#btnupload").click(function () {
//formdata.append("text", "1");
//formdata.append("text", "2");
$.ajax({
url: "program/action.aspx?r=" + new Date(),
type: "POST",
data: formdata,
cache: false, //不设置缓存
processData: false, // 不处理数据
contentType: false // 不设置内容类型
});
}); }); </script>

后台处理:

 public void uploadimg()
{
//string text = Request.Form["text"];
System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
for (int i = ; i < files.AllKeys.Count(); i++)
{
if (files.AllKeys[i] == "uploadfile")
{
if (files[i].FileName.Length > )
{
System.Web.HttpPostedFile postedfile = files[i];
string filePath = "";
var ext = Path.GetExtension(postedfile.FileName);
var fileName = DateTime.Now.Ticks.ToString() + ext;
// 组合文件存储的相对路径
filePath = "/mytest/upload/" + fileName;
// 将相对路径转换成物理路径
var path = Server.MapPath(filePath);
postedfile.SaveAs(path); }
}
} }

.NET File 多图上传的更多相关文章

  1. jquery input file 多图上传,单张删除,查看

    <div class="form-group"> <label for="imgs" class="col-md-3 col-sm- ...

  2. HTML5 原生API input file 来实现多图上传,并大图预览

    闲来无事,突然想用原生来实现图片的多图上传. 一.效果图大致如下: 1.上传时可以选择多图 2.上传之后缩略图下过图如下: 3.点击缩略图,大图展示当前所点击的图片,并可以左右滑动查看其它的缩略图对应 ...

  3. yii2组件之多图上传插件FileInput的详细使用

    作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  4. php多图上传问题笔记

    图片上传好用插件有,比如 uploadify  ueditor html5的各种ajax上传插件,大部分都是异步,返回只是true之类,有些时候需要上传图片需要一起上传,其实可以通过操作流程来避免这个 ...

  5. PHP之:多图上传

    撰写日期:2016-6-30 15:17:35 Thursday 参考 http://a3147972.blog.51cto.com/2366547/1381136 (08-05ThinkPHP+sw ...

  6. JS案例之4——Ajax多图上传

    近期项目中有好几次用到多图上传,第一次在项目中真正用到Ajax技术,稍微整理了下,贴个案例出来. 我们传统的做法是当用户提交一个表单时,就向web服务器端发送一个请求.服务器接受并处理传来的表单信息, ...

  7. jQuery多图上传Uploadify插件使用及传参详解

    因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...

  8. thinkphp3.2.x多图上传并且生成多张缩略图

    html部分 <!DOCTYPE html><html><head><meta http-equiv="Content-Type" con ...

  9. thinkphp5多图上传 js部分

    在项目中常会用到多图上上传,那就需要多图上传后需要预览,并且能删掉传错(不想传)的图,然而 测试了半天 并不知道jq怎么写,parent()parents()用了半天无果,罢了,还是用原生js来写.这 ...

随机推荐

  1. Comet OJ - Contest #6 C 一道树题 数学 + 推导

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...

  2. 常用的JAVA第三方工具类

    转自:https://www.jianshu.com/u/9c5cb1ee4c46 一. org.apache.commons.io.IOUtils 注解 说明 closeQuietly 关闭一个IO ...

  3. Linux下JDK1.7升级1.8版本

    先下载 jdk-8u45-linux-x64.rpm 然后上传到  /usr/local/src  去.当然其他目录也可以.这里是默认位置 给所有用户添加可执行权限 #chmod +x jdk-8u4 ...

  4. which statement is true for the class java.util.ArrayList?

    A.集合中的元素是有序的   对 B.集合被保证为不可变的  错 C.集合中的元素被保证为唯一的  错  有序的 所以不唯一 D.集合中的元素使用一个唯一的键来存取   错   没有键 E.集合中的元 ...

  5. [CSP-S模拟测试]:飘雪圣域(莫队)

    题目描述 $IcePrincess\text{_}1968$和$IcePrince\text{_}1968$长大了,他们开始协助国王$IceKing\text{_}1968$管理国内事物. $IceP ...

  6. HTML canvas中translate()与rotate()的理解

    首先,当我们在页面上初始化canvas时,相当于在上面放了一块画布,这块画布我们可以理解为上面有一个坐标系(如下图),左上角是原点,往右是X轴的正方向,往下是Y轴的正方向,我们在画布上绘制的内容都是基 ...

  7. 北风设计模式课程---开放封闭原则(Open Closed Principle)

    北风设计模式课程---开放封闭原则(Open Closed Principle) 一.总结 一句话总结: 抽象是开放封闭原则的关键. 1."所有的成员变量都应该设置为私有(Private)& ...

  8. React Native商城项目实战16 - 购物中心详细页

    逻辑分析: 首页(Home)加载的购物中心组件(ShopCenter),传递url数据: ShopCenter里根据url加载购物中心详细页组件(ShopCenterDetail), ShopCent ...

  9. python-异常处理总结

    一.异常处理 在程序运行的过程中,总会遇到各种各样的错误.程序一出错就停止运行了,下面的代码就不能运行了:这时候就需要捕捉异常,通过捕捉异常,再去做对应的处理. e.g: info = { " ...

  10. Python解决ModuleNotFoundError: No module named 'Queue'的问题

    我们知道Python2和Python3两个版本之间,有些不兼容的地方,Python3中引入Queue会报出这个问题. Python3中要这样引入: import queue Python2中要这样引入 ...