使用tp3.2和mbUploadify.js上传图片的代码,记录一下
HTML:
<div class="form-group">
<label class="col-sm-1 control-label no-padding-right" for="form-field-4"> 图片: </label>
<div class="col-sm-9">
<input type="file" name="files" id="imgfile" multiple style="display:none;" onchange = "imgpath.value=this.value" >
<input type="textfield" id="imgpath" style="border: 0px;outline:none;cursor: pointer;width:100px;display:none;">
<input type="button" class="btn btn-white btn-info btn-sm" value="点击上传图片" onclick="imgfile.click()">
<div class="space-4"></div>
<div id="img-data" class="img-data">
<if condition="$data['savepath'] neq ''">
<span class="uploadimg">
<img src="{$data['savepath']}" style="max-width: 300px;">
<input type="hidden" name="img" value="{$data['img']}">
<a class="remove-uploadimg" title="删除">✕</a>
</span>
</if>
</div>
<div class="space-4"></div>
<div id="imgError" class="msg"></div>
</div>
</div>
CSS:
<style>
.remove-uploadimg{ cursor:pointer;}
.uploadimg{
display: inline-block;
position: relative;
}
.uploadimg .remove-uploadimg{
position: absolute;
font-size: 20px;
top:-10px;
right: -6px;
}
.remove-uploadimg{
width:30px;
height:30px;
background-color:#ccc;
border-radius:50%;
color:red;
text-align:center;
}
.remove-uploadimg:hover{
text-decoration: none;
}
</style>
JS:
<script src="__PUBLIC__/js/mbUploadify.js"></script>
<script>
var upload1 = new mbUploadify({
file: document.getElementById('imgfile'),
/*ajax 上传地址*/
url: "{:U('Upload/mbUploadImg')}",
//上传进度
progress: function(){
$('#imgpath').show();
$('#imgpath').val('上传中...');
},
/*上传失败*/
error: function(file, msg){
document.getElementById('imgError').innerHTML = msg;
},
/*ajax上传成功*/
uploadSuccess: function(res){
$('#imgpath').hide();
$('#imgpath').val('');
var data = JSON.parse(res);
document.getElementById('img-data').innerHTML = '<span class="uploadimg">' +
'<img src="'+ data.savepath +'" style="max-width: 300px;">' +
'<input type="hidden" name="img" value="'+data.id+'">'+
'<a class="remove-uploadimg" title="删除">✕</a>' +
'</span>';
}
});
$('body').on('click','.remove-uploadimg',function(){
$(this).parents('.uploadimg').remove();
})
</script>
PHP:
public function mbUploadImg(){
$upload = new Upload(); // 实例化上传类
$upload->maxSize = 5242880 ; // 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型
$upload->rootPath = './Public/';
// 上传文件
$info = $upload->uploadOne($_FILES['files']);
if($info) {
// 上传成功
$data['name'] = $info['name'];
$data['ext'] = $info['ext'];
$data['type'] = $info['type'];
$data['savename'] = $info['savename'];
$data['savepath'] = "/Public/".$info['savepath'].$info['savename'];
$imgId = M('upload_img')->add($data);
if($imgId){
$resData['code'] = 200;
$resData['msg'] = '成功';
$resData['id'] = $imgId;
$resData['name'] = $data['name'];
$resData['savepath'] = $data['savepath'];
echo json_encode($resData);
return;
}
}
// 上传错误提示错误信息
return $this->ajaxReturn(['code'=>400,'msg'=>$upload->getError()]);
}
使用tp3.2和mbUploadify.js上传图片的代码,记录一下的更多相关文章
- c#使用js上传图片
前几天朋友说用js上传图片过去遇到点问题,于是自己也想写一个demo这里就把自己挖的坑填了. 话不多说上代码 前台就一个file控件加按钮 <!DOCTYPE html> <html ...
- 富文本编辑器上传图片需要配置js,后台代码
富文本编辑器上传图片需要配置js,后台代码
- JS 上传图片 + 预览功能(一)
JS 上传图片 + 预览功能 <body> <input type="file" id="fileimg1" style="disp ...
- js上传图片前预览方法(支持预览多个图片)
运用js实现上传图片前的预览(支持多张图片),实现的例子如下: 1.源码例子: 1)Js脚本页面 <!doctype html> <html> <head> < ...
- Node.js 上传图片并保存
Node.js 上传图片并保存 依赖 package.json 文件 { "name": "demo", "version": " ...
- js 上传图片、压缩、旋转
亲测 <!doctype html> <html> <head> <meta charset="utf-8"> <title& ...
- 原生 js 上传图片
js <!doctype html> <html> <head> <meta charset="utf-8"> <title& ...
- Js上传图片并生成缩略图
Js上传图片并显示缩略图的流程为 Js选择文件->Jquery上传图片->服务器接收图片流->存储图片->返回结果到Js端->显示缩略图 本文上传图片所用的Js库是aja ...
- 原生js上传图片遇到的坑(axios封装)
后台给我写了一个上传图片的接口,自己用form表单测试成功 接口可以正常跳转 测试的代码: <!doctype html> <html lang="en"> ...
随机推荐
- Python进阶内容(一)--- 高阶函数 High order function
0. 问题 # 本文将围绕这段代码进行Python中高阶函数相关内容的讲解 # 文中所有代码的兼容性要求为:Python 3.6,IPython 6.1.0 def addspam(fn): def ...
- 二、Asp.Net Core WebAPI——OcelotDemo
项目源码OcelotDemo 基础知识在教程或者官网文档查看 Ocelot源码 基于.NET平台的Ocelot网关框架教程汇总 这篇文章不错. 这里我只写我想说的 项目结构 API1和API2是测试的 ...
- 第二课,DOS常用命令及进制转换
课后的一点小总结还望各位大神点评. 注意事项:1.不要在c盘进行操作. 2.要注意路径. 3.要熟练掌握DOS命令 操作指令(.在本文代表空格,本次以文档为例) 打开DOS:窗口键+r 输入cmd ...
- [T-ARA][그녀를 보면][看着那个女人的话]
歌词来源:http://music.163.com/#/song?id=29343995 作曲 : 코난 [作曲 : Ko-nan] 作词 : 코난/로코 [作词 : Ko-nan-/lo-Ko] b ...
- 可以在命令行直接使用密码来进行远程连接和远程拉取文件的命令:sshpass
应用范围:可以在命令行直接使用密码来进行远程连接和远程拉取文件. 使用前提:对于未连接过的主机.而又不输入yes进行确认,需要进行sshd服务的优化: # vim /etc/ssh/ssh_con ...
- Android Studio 动态调试 apk 反编译出的 smali 代码
在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...
- Postgresql 数据库,如何进行数据备份以及导入到另外的数据库
方法其实有很多种,这里用的方法比较稳妥.之后有时间会补充别的方法. 该方法分为三步:备份数据,新建表结构,导入数据 备份数据:>>\copy table_name to '/home/ba ...
- 26、springboot与消息
概述: 1.大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力消息服务中两个重要概念: 2.消息代理(message broker)和目的地(destination) ...
- appium 环境安装windows
创建AVD -c --sdcard : 指向一个共享的SD存储卡的路径,或者是新的SD储存卡容量大小. -n --name : AVD的名字(该项是必须的) -a --snapshot ...
- 6 spark 存储体系
6.1 block存储体系 存储体系架构图 6.2 block 信息信息管理器 6.2.2 bock锁的实现 6.3 磁盘block管理 /* * Licensed to the Apache Sof ...