layui中提供了非常简单的文件上传组件,这里写了一个上传图片的栗子,上传成功后返回图片在服务器的路径,并设置为页面中img的src属性。因为上传十分简单,没什么可说的,就直接上代码了。

html代码

    <button type="button" class="layui-btn" id="test1">
<i class="layui-icon"></i>选择图片
</button>
<button type="button" class="layui-btn" id="btnUpload">开始上传</button>
<img id="myPic" src="" width="500" />

JS代码

  <script>
layui.use(['upload', 'jquery'], function () {
var upload = layui.upload;
var $ = layui.$;
//执行实例
var uploadInst = upload.render({
elem: '#test1' //绑定元素
, url: '/Home/UploadImg' //上传接口 //*********************传输限制
, size: 100 //传输大小100k
, exts: 'jpg|png|gif|' //可传输文件的后缀
, accept: 'file' //video audio images //****************传输操作相关设置
, data: { Parm1: "hello", Parm2: "world" } //额外传输的参数
, headers{token:'sasasasa'} //额外添加的请求头
, auto: false //自动上传,默认是打开的
, bindAction: '#btnUpload' //auto为false时,点击触发上传
, multiple: false //多文件上传
//, number: 100 //multiple:true时有效 , done: function (res) { //传输完成的回调
console.log(res.IsSuccess)
console.log(res.Msg)
$('#myPic').attr("src", res.Src);
}
, error: function () { //传输失败的回调
//请求异常回调
}
});
});
</script>

后台接口(使用.net mvc)

       public ActionResult UploadImg(string Parm1,string Parm2)
{
if (Request.Files.Count>)
{
//p1,p2没什么用,只是为了证明前端中额外参数data{parm1,parm2}成功传到后台了
string p1 = Parm1;
string p2 = Parm2;
//获取后缀名
string ext = Path.GetExtension(Request.Files[].FileName);
//获取/upload/文件夹的物理路径
string mapPath = Server.MapPath(Request.ApplicationPath);
//通过上传时间来创建文件夹,每天的放在一个文件夹中
string dir = mapPath + "upload/"+DateTime.Now.ToString("yyyy-MM-dd");
DirectoryInfo dirInfo = Directory.CreateDirectory(dir);
//在服务器存储文件,文件名为一个GUID
string fullPath = dir + "/" + Guid.NewGuid().ToString()+ ext;
Request.Files[].SaveAs(fullPath);
//获取图片的相对路径
string imgSrc = fullPath.Replace(mapPath, "/");
return Json(new { IsSuccess = , Msg = "上传成功", Src = imgSrc });
}
else
{
return Json(new { IsSuccess = , Msg = "上传失败", Src = "" });
}
}

注:本文只是自己为了查看方便整理的一些内容,并不包含layui中所有内容,查看更多请访问官网http://www.layui.com/doc/modules/upload.html

layui(六)——upload组件常见用法总结的更多相关文章

  1. layui(七)——rate组件常见用法总结

    layui中提供了rate组件,用法很简单,直接上代码. <div id="test1"></div> <script> layui.use(' ...

  2. layui(二)——layer组件常见用法总结

    layer是layui的代表作,功能十分强大,为方便以后快速配置这里对其常见用法做了简单总结 一.常用调用方式 //1.普通消息:alert(content,[options],[yesCallBac ...

  3. layui(三)——laypage组件常见用法总结

    laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染.核心方法: laypage.render(options)  来设置基础参数. 一.laypag ...

  4. layui(九)——flow组件常见用法总结

    该模块包含 信息流加载 和  图片懒加载  两大核心支持,无论是对服务端.还是前端体验,都有非常大的性能帮助.下边分别给出了这两种技术的使用方法 一.信息流加载 信息流加载的核心方法时  flow.l ...

  5. layui(五)——form组件常见用法总结

    form 是我们非常看重的一块.layui中的form实现全自动的初始渲染,和基于事件驱动的接口书写方式.我整理了layui中form的配置.下边直接给一个栗子,后台采用.net MVC,除了razo ...

  6. layui(四)——table组件常见用法总结

    table是 layui 最核心的组成之一.它用于对表格进行一些列功能和动态化数据操作,涵盖了日常业务所涉及的几乎全部需求.支持固定表头.固定行.固定列左/列右,支持拖拽改变列宽度,支持排序,支持多级 ...

  7. layui的upload组件使用以及上传阻止测试

    背景:页面上一个按钮,点击弹出上传框,从按钮的方法代码开始写:处理未选择文件阻止上传:通过判断选择文件的数量,显示或隐藏上传按钮: 在js中定义: function  uploadFile(){ la ...

  8. layui(一)——layDate组件常见用法

    和 layer 一样,我们可以在 layui 中使用 layDate,也可直接使用 layDate 独立版,可按照实际需求来选择.options整理如下: layui.use('laydate', f ...

  9. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

随机推荐

  1. ContOS7编译安装python3,配置虚拟环境

    Python36编译安装 一,下载python源码包 网址:https://www.python.org/downloads/release/python-367/ # 软件包下载到/opt目录 cd ...

  2. Django ContentType组件

    ContentType组件 引入 现在我们有这样一个需求~我们的商城里有很多的商品~~节日要来了~我们要搞活动~~ 那么我们就要设计优惠券~~优惠券都有什么类型呢~~满减的~折扣的~立减的~~ 我们对 ...

  3. Codeforces551 C. GukiZ hates Boxes

    二分答案 + 贪心 传送门:$>here<$ $Solution$ 二分时间+贪心验证.思维难度主要在验证上,然而坑人的点却在n的取值上.那么先来谈如何验证.在已知时间的条件下,能否用一种 ...

  4. spi slaver接口的fpga实现

    前言 spi从机接口程序,数据位8bit,sck空闲时低电平,工作时第一个沿数据传输.只有一个从机,cs低电平片选,slaver开始工作. 流程: 接口定义: 编码实现:(版权所有,请勿用于商业用途, ...

  5. 【bzoj3456】城市规划(多项式求逆+dp)

    Description 求\(~n~\)个点组成的有标号无向连通图的个数.\(~1 \leq n \leq 13 \times 10 ^ 4~\). Solution 这道题的弱化版是poj1737, ...

  6. 基数排序模板(基数排序,C++模板)

    算法的理论学习可右转Creeper_LKF大佬的洛谷日报 一个优化算法理论时间复杂度的实例点这里 另一个实例点这里 时间复杂度\(O(n)\),算常数的话要乘位长. 蒟蒻参考了Creeper_LKF大 ...

  7. 【COGS2652】秘术「天文密葬法」(长链剖分,分数规划)

    [COGS2652]秘术「天文密葬法」(长链剖分,分数规划) 题面 Cogs 上面废话真多,建议直接拉到最下面看一句话题意吧: 给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σa ...

  8. rt-thread之串口设备的配置流程

    @2019-01-30 [小记] > rt-thread 工程启动之后先是进入函数 rtthread_startup 做一些系统运行前的基础工作,主要有: * 板级硬件初始化 * 系统定时器初始 ...

  9. Pycharm自动添加文件头注释

    1.选择File -> Settings 2.选择 File and Code Templates -> Files -> Python Script 3.设置 #!/usr/bin ...

  10. print

    说一说这个print函数,我们经常使用,但有一些细节却往往错过了 print print()输出会换行是因为默认end="\n" 想要不换行,且覆盖 print("\r第 ...