{layout name="layout" title="文章添加" /}
<form id="defaultForm" role="form" method="POST" action="{:url('/admin/article/add/')}">
<div class="form-group">
<label for="exampleInputUsername">文章标题:</label>
<input type="text" class="form-control" value="{present name="data.title"}{$data.title}{/present} " name="title" id="title" placeholder="请输入链接名称">
</div>
<div class="form-group">
<label for="exampleInputEmail">文章分类:</label>
<select name="type_id" id="type_id" class="form-control">
{foreach $listType as $vo}
<OPTION value="{$vo.id}" {present name="data.type_id "}{if condition="$data.type_id eq $vo.id"} selected="selected" {/if}{/present} >{$vo.type_name}</OPTION>
{/foreach}
</select>
</div>
<div class="form-group">
<label for="exampleInputPassword">文章封面</label>
<!--
<input type="hidden" readonly name="cover_pic" id="cover_pic" value="{present name="data.cover_pic"}{$data.cover_pic}{/present}">
<img id="link_add_img" src="{present name="data.cover_pic"}{$data.cover_pic}{/present}" width="100px" heigth="100px">
<input type="button" id="selectImg" value="选择图片" /> -->
<label class="control-label">Select File</label>
<input id="input-702" name="kartik-input-702[]" type="file" multiple=true class="file-loading">
</div> <div class="form-group">
<label for="exampleInputEmail">文章内容:</label>
<TEXTAREA name="content" id="content" class="form-control">{present name="data.content"}{$data.content}{/present}</TEXTAREA>
</div> <input type="hidden" name="__token__" value="{$Request.token}" />
<input type="hidden" name="id" id="id" value="{present name="data.id"}{$data.id}{/present}" />
<button type="submit" class="btn btn-default">提交</button>
<button type="reset" class="btn btn-default">重置</button>
</form> <!-- 配置文件 -->
<script src="__ROOT__kindeditor/kindeditor-all.js" type="text/javascript"></script>
<script src="__ROOT__kindeditor/lang/zh-CN.js" type="text/javascript"></script>
<link rel="stylesheet" href="__ROOT__kindeditor/themes/default/default.css" /> <!-- bootstrap上传 -->
<script src="__ROOT__bootstrap/js/components/fileinput.js" type="text/javascript"></script>
<script src="__ROOT__bootstrap/js/components/zh.js" type="text/javascript"></script>
<link rel="stylesheet" href="__ROOT__bootstrap/css/components/fileinput.css" /> <script>
KindEditor.ready(function(K) {
editor = K.create('textarea[name="content"]', {
allowFileManager : true
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#defaultForm').bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
title: {
message: 'The title is not valid',
validators: {
notEmpty: {
message: '名称必须填写'
},
stringLength: {
min: 2,
max: 30,
message: '名称最短2个字最长30个字'
},
}
}, content: {
message: 'The content is not valid',
validators: {
notEmpty: {
message: '内容必须填写'
},
}
},
}
});
});
</script>
<script>
$(function(){
$.ajax({
type : "post",
url : "/admin/article/listPic",
dataType : "json",
success : function(data) {
showPhotos(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
layer.msg('操作失败!');
}
}); }); function showPhotos(djson){
//后台返回json字符串转换为json对象
var reData = eval(djson);
// 预览图片json数据组
var preList = new Array();
for ( var i = 0; i < reData.length; i++) {
var array_element = reData[i];
// 图片类型
preList[i]= "<img width=120px src=\""+array_element.img+"\" class=\"file-preview-image\">"; }
var previewJson = preList;
// 与上面 预览图片json数据组 对应的config数据
var preConfigList = new Array();
for ( var i = 0; i < reData.length; i++) {
var array_element = reData[i];
var tjson = {
caption: array_element.name, // 展示的文件名
width: '120px',
url: '/admin/article/delPic', // 删除url
key: array_element.id, // 删除是Ajax向后台传递的参数
size: array_element.size,
extra: {id: 100}
};
preConfigList[i] = tjson;
}
// 具体参数自行查询
$('#input-702').fileinput({
uploadUrl: '/eim/upload/uploadFile.do',
uploadAsync:true,
showCaption: true,
showUpload: true,//是否显示上传按钮
showRemove: false,//是否显示删除按钮
showCaption: true,//是否显示输入框
showPreview:true,
showCancel:true,
dropZoneEnabled: false,
overwriteInitial: false,
maxFileCount: 10,
initialPreviewShowDelete:true,
msgFilesTooMany: "选择上传的文件数量 超过允许的最大数值!",
initialPreview: previewJson,
previewFileIcon: '<i class="fa fa-file"></i>',
allowedPreviewTypes: ['image'],
previewFileIconSettings: {
'docx': '<i class="fa fa-file-word-o text-primary"></i>',
'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
'pptx': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
'pdf': '<i class="fa fa-file-pdf-o text-danger"></i>',
'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
'sql': '<i class="fa fa-file-word-o text-primary"></i>',
},
initialPreviewConfig: preConfigList
}).off('filepreupload').on('filepreupload', function() {
// alert(data.url);
}).on("fileuploaded", function(event, outData) {
//文件上传成功后返回的数据, 此处我只保存返回文件的id
var result = outData.response.id;
// 对应的input 赋值
$('#htestlogo').val(result).change();
});
}
</script>
</script>

php部分代码

    public function listPic()
{
$array=array(
0=>array('img'=>'http://www.thinkphp5.cn/uploads/image/20170609/20170609111909_15177.jpg','id'=>1,'name'=>'aa','size'=>'576237'),
1=>array('img'=>'http://www.thinkphp5.cn/uploads/image/20170609/20170609111909_15177.jpg','id'=>2,'name'=>'bb','size'=>'932882'));
echo json_encode($array);
}

其他:ajax上传 编辑的官方演示地址

http://plugins.krajee.com/file-input-ajax-demo/3

代码中引入3个文件就可以

fileinput.css

fileinput.js

zh.js

bootstrap file input 多图片上传编辑THINKPHP5的更多相关文章

  1. bootstrap File Input 多文件上传插件使用记录(二)删除原文件

    在上一篇文章中,主要介绍了file input插件的初始化和多文件同步上传到服务器的相关配置等.这篇主要介绍file input插件的编辑等. 使用场景: 在后台管理框架中,一条数据中包含不固定的多张 ...

  2. MVC4中基于bootstrap和HTML5的图片上传Jquery自定义控件

    场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和 ...

  3. bootstrap fileinput实现限制图片上传数量及如何控制分批多次上传

    废话没有,直奔主题 问题点: fileinput提供了一个maxFileCount用于限制图片上传的数量,设置maxFileCount为1时,一次性选择超过一张会有如下提示: 当选择一张,不点上传,再 ...

  4. vue下实现input实现图片上传,压缩,拼接以及旋转

    背景 作为一名前端工作人员,相信大家在开发系统的时候,经常有遇到需要这么一种需求,就是需要为用户保存上传的图片,很多小白遇到这个问题的时候,都会虎躯一震,以为会是一个棘手的问题,当你读完这篇文章的时候 ...

  5. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

  6. jquery 实现图片上传,并在前端显示出来

    目前遇到一个图片上上传的需求,突然发现,原来之前都没有做过此种类型的需求,以下是需求样式: 看到需求后之所以有点懵,是因为我接触到的文件上传,一般都是按钮类型的,例如以下这种: 深呼吸,好好想一下,整 ...

  7. 根目录97 <input file>标签,把图片上传到服务器(跟增删改查一起实现)

    首先来个简单的html页面: enctype="multipart/form-data" encoding="multipart/form-data" acti ...

  8. form input file 图片上传360IE兼容问题

    <form action="" class="form-box" class="form_box" enctype="mul ...

  9. input file 图片上传

    使用第三方:jquery.ajaxfileupload.jsinput中的name根据后端来定 <form method="post" enctype="multi ...

随机推荐

  1. xdoj-1149(多重集合+容斥原理+组合数取模)

    #include <iostream> #include <algorithm> #include <cstdio> using namespace std; ty ...

  2. 蓝桥杯 BASIC-9:特殊回文数

      基础练习 特殊回文数   时间限制:1.0s   内存限制:512.0MB        问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这 ...

  3. JQuery 遮罩层弹窗

    var str = "<div id=\"zhezhao\" style=\"display:none; background-color: rgba(0 ...

  4. java反射+java泛型,封装BaseDaoUtil类。供应多个不同Dao使用

    当项目是ssh框架时,每一个Action会对应一个Service和一个Dao.但是所有的Ation对应的Dao中的方法是相同的,只是要查的表不一样.由于封装的思想,为了提高代码的重用性.可以使用jav ...

  5. CUDA npp运动检测模块性能测试

    测试环境: Cpu:       Intel(R)Core(TM)i7-4790 CPU @3.6GHZ GPU:        NVIDIA GeForce GTX960 *2 操作系统:   Wi ...

  6. 在 ASP.NET 网页中不经过回发而以编程方式实现客户端回调

    在 ASP.NET 网页的默认模型中,用户会与页交互,单击按钮或执行导致回发的一些其他操作.此时将重新创建页及其控件,并在服务器上运行页代码,且新版本的页被呈现到浏览器.但是,在有些情况下,需要从客户 ...

  7. hosts,No web site is configured at this address.

    解决办法: IIS管理器->右击网站->属性->网站——>IP地址一项->选择全部未分配-> 确定关闭 问题解决.

  8. win xp 关闭动画屏幕角色,那只小狗

    这个动画屏幕角色每次会占用两秒左右的时间. 在搜索选项中打开"改变首选项(G)" -选择 “不使用动画屏幕角色(S)”. - -

  9. thinkphp.2 thinkphp5微信支付 微信公众号支付 thinkphp 微信扫码支付 thinkphp 微信企业付款5

    前面已经跑通了微信支付的流程,接下来吧微信支付和微信企业付款接入到thinkphp中,版本是3.2 把微信支付类.企业付款类整合到一起放到第三方类库,这里我把微信支付帮助类和企业付款类放到同一个文件了 ...

  10. ALGO-4_蓝桥杯_算法训练_结点选择

    问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值.如果一个点被选择了,那么在树上和它相邻的点都不能被选择.求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n . 接下来的 ...