.NET File 多图上传
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 多图上传的更多相关文章
- jquery input file 多图上传,单张删除,查看
<div class="form-group"> <label for="imgs" class="col-md-3 col-sm- ...
- HTML5 原生API input file 来实现多图上传,并大图预览
闲来无事,突然想用原生来实现图片的多图上传. 一.效果图大致如下: 1.上传时可以选择多图 2.上传之后缩略图下过图如下: 3.点击缩略图,大图展示当前所点击的图片,并可以左右滑动查看其它的缩略图对应 ...
- yii2组件之多图上传插件FileInput的详细使用
作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
- php多图上传问题笔记
图片上传好用插件有,比如 uploadify ueditor html5的各种ajax上传插件,大部分都是异步,返回只是true之类,有些时候需要上传图片需要一起上传,其实可以通过操作流程来避免这个 ...
- PHP之:多图上传
撰写日期:2016-6-30 15:17:35 Thursday 参考 http://a3147972.blog.51cto.com/2366547/1381136 (08-05ThinkPHP+sw ...
- JS案例之4——Ajax多图上传
近期项目中有好几次用到多图上传,第一次在项目中真正用到Ajax技术,稍微整理了下,贴个案例出来. 我们传统的做法是当用户提交一个表单时,就向web服务器端发送一个请求.服务器接受并处理传来的表单信息, ...
- jQuery多图上传Uploadify插件使用及传参详解
因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...
- thinkphp3.2.x多图上传并且生成多张缩略图
html部分 <!DOCTYPE html><html><head><meta http-equiv="Content-Type" con ...
- thinkphp5多图上传 js部分
在项目中常会用到多图上上传,那就需要多图上传后需要预览,并且能删掉传错(不想传)的图,然而 测试了半天 并不知道jq怎么写,parent()parents()用了半天无果,罢了,还是用原生js来写.这 ...
随机推荐
- [LightOJ1240]Point Segment Distance 题解
题意简述 原题LightOJ 1240,Point Segment Distance(3D). 求三维空间里线段AB与C. 题解 我们设一个点在线段AB上移动,然后发现这个点与原来的C点的距离呈一个单 ...
- github 的 fork 取消功能
进入该 fork 目录后 找到 Settings 点击后拉到底 找到含有 Delete 字样的按钮点击 弹出的对话框输入你删除的这个项目名 后删除 链接
- Android ListView焦点事件冲突问题与解决
Android ListView对于单纯列表展示是很好用的,但是一旦牵扯到对listView进行操作就会遇到各种各样的问题.比如保存Checkbox状态与item复用的冲突.遇到可获取焦点的控件比如说 ...
- Bazinga
Bazinga Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- RabbitMQ中Confirm确认与Return返回消息详解(八)
理解Confirm消息确认机制: 消息的确认,是指生产者投递消息后,如果Broker收到消息,则会给我们生产这一个应答. 生产者进行接收应答,用来确定这条消息是否正常的发送到Broker,这种方式也是 ...
- C++编译-链接错误集合
1,无法解析的外部符号,链接错误,原因:没找到某个符号(变量或函数)的定义体,一般是对应函数没实现,或第三方库没有添加到工程设置中 2,重复链接链接错误,一个定义体(实现体)被多个CPPP文件包含,导 ...
- PROD异机全备份恢复验证实施文档
PROD异机全备份恢复验证实施文档 ******利用10月25日的全量备份.10月26日当天的归档日志及当前redo日志,恢复数据库到故障前数据库状态****** 准备工作:source 源库:PRO ...
- ORA-20011
Sun Jul 23 22:09:07 2017DBMS_STATS: GATHER_STATS_JOB encountered errors. Check the trace file.Errors ...
- wow64 32位进程中切换64位模式,取回64位寄存器值
32位dbg中编辑的: 7711E9D3 | 6A | | 7711E9D5 | E8 | 7711E9DA | | | 7711E9DE | CB | ret far | 6A E8 CB 64位d ...
- 插桩 inline hook 动态二进制插桩的原理和基本实现过程
插桩测试 https://source.android.google.cn/compatibility/tests/development/instrumentation https://zhuanl ...