模板

{extend name="public/base" /}
{block name="body"} <div class="row">
<div class="col-md-8"> <div class="page-header">
<h2>发布文章</h2>
</div>
<form id="uploadForm">
<input type="hidden" value="{$Think.session.user_id}" name="user_id" id="user_id" /> <div class="form-group">
<label>标题</label>
<input type="text" name="title" id="title" class="form-control" placeholder="文章标题">
</div> <div class="form-group">
<label >栏目</label>
<select class="form-control" name="cate_id" id="cate_id">
{volist name="cateList" id="vo"}
<option value="{$vo.id}">{$vo.name}</option>
{/volist}
</select>
</div> <div class="form-group">
<label>内容</label>
<textarea id="content" class="form-control" rows="8" name="content" placeholder="内容"></textarea>
</div> <div class="form-group">
<label >封面图</label>
<input type="file" name="title_img" id="inputfile" >
<!-- <p class="help-block">Example block-level help text here.</p> -->
<div id="info" style=" color:red;margin-bottom: 3px;margin-top: 8px;"></div>
</div> </form> <div class="form-group">
<button class="btn btn-primary" id="register" style="width:100%">发布</button>
</div> </div> <script>
$(function(){ $("#register").on('click',function(){ var img = $("#inputfile").prop("files")[0];
var formData = new FormData();
formData.append('title_img', img);
formData.append('user_id', $('#user_id').val());
formData.append('title', $('#title').val());
formData.append('cate_id',$('#cate_id').val());
formData.append('content', $('#content').val()); $.ajax({
url:"{:url('index/insertcl')}",
type:"post",
data:formData,
dataType:'json',
cache: false,
processData: false,
contentType: false,
success:function(data){
//如果输入不合格
if(data.status==-1){
$('#info').text(data.message);
}else{
alert(data.message);
window.location.href="{:url('index/index')}";
}
}
});
});
});
</script>
{/block}

后台

    //发布文章操作
public function insertcl(){
$data = $_POST;
$data['title_img'] =request()->file('title_img');
//验证器
$rule = 'app\common\validate\Article';
$res = $this->validate($data,$rule);
//验证结果
if($res!==true){
return ['status'=>-1,'message'=>$res];
} //获取file对象
$file = $data['title_img'];
//文件信息验证与上传到服务器指定目录
$info = $file->validate([
'size'=>5000000, //文件大小
'ext'=>'jpg,jpeg,png,gif' //文件拓展名
])->move('uploads/'); //移动到public/uploads目录下 //错误就报错
if($info==false){
return ['status'=>-1,'message'=>$file->getError()];
} //获取文件名
$data['title_img'] = $info->getSaveName(); $result = Article::create($data); if($result){
return ['status'=>1,'message'=>'发布成功'];
}
return ['status'=>0,'message'=>'发布失败']; }

THINKPHP 模板上传图片--后台接收图片的更多相关文章

  1. CKEditor+SWFUpload实现功能较为强大的编辑器(三)---后台接收图片流程

    在前台配置完CKEditor和SWFUpload之后就可以满足基本的需求了 在这里,我配置的接收异步上传的图片的页面为upload.ashx 在这个ashx中对上传的图片处理的流程如下: contex ...

  2. Android选择/拍照 剪裁 base64/16进制/byte上传图片+PHP接收图片

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/65633129认为博文实用,请点赞,请评论,请关注.谢谢! ~ 老规矩,先上GIF动态图 ...

  3. 前台页面上传data image图片,java后台接收图片保存

    最近在项目中有这么一个需求,就是上传一个视频文件,然后要获取视频文件的第一帧图片,这个可以通过canvas获取得到,得到的是一个dataURL,之后还要将这个图片上传到云,这个时候如何操作就不清楚了, ...

  4. base64编码上传图片java后台接收实例

    原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64 ...

  5. 安卓发送图片文字,java后台接收

    安卓使用retrofit2 和rxjava2 url: @Multipart @POST(UrlTools.STORYUPLOAD) Observable<Result> saveRepo ...

  6. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  7. 利用ThinkPHP搭建网站后台架构

    记录一下ThinkPHP搭建网站后台.调整好样式等操作步骤 下载好ThinkPHP(3.2.3),解压后将核心文件夹ThinkPHP以及index.php等文件复制到网站根目录如下图 对index.p ...

  8. ThinkPHP中使用ajax接收json数据的方法

    本文实例讲述了ThinkPHP中使用ajax接收json数据的方法.分享给大家供大家参考.具体分析如下: 这里通过ThinkPHP+jquery实现ajax,扩展了下,写了个查询,前台代码如下: 首先 ...

  9. thinkphp达到UploadFile.class.php图片上传功能

    片上传在站点里是非经常常使用的功能.ThinkPHP里也有自带的图片上传类(UploadFile.class.php) 和图片模型类(Image.class.php).方便于我们去实现图片上传功能,以 ...

随机推荐

  1. 849. Dijkstra求最短路 I(模板)

    给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1. 输入格式 第一行包含整数n和m. 接下来m行每行包 ...

  2. Hibernate的save方法不能进行数据库插入

    问题描述 在 MyEcplise 上运行 tomcat,利用 po 模板自动生成 po 文件,调用 po 的 save 方法,不报错,但是无法把数据插入数据库 applicationContext.x ...

  3. python3练习100题——032

    链接:http://www.runoob.com/python/python-exercise-example32.html 题目:按相反的顺序输出列表的值. 我的代码: for i in li[:: ...

  4. AntDesign(React)学习-14 使用UMI提供的antd模板

    1.UMI提供了可视化antd模板,可以直接添加到项目中修改用 比如将个人中心添加到项目中 2.选择个人中心,确定 3.成功 4.打开项目 5.Route文件也自动添加 根路由有exact:true后 ...

  5. 如来十三掌-关于不断解密的密码学,佛语解密,rot-13(根据13掌),base64

    得到MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9 然后尝试嘛 base64不太行 那根据十三掌??rot-13 得到ZmxhZ3tiZHNj ...

  6. SIFT算法原理(3)-确定关键点的主方位,构建关键点描述符

    介绍官网:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html ...

  7. mybatis(五):源码分析 - 结果集映射流程

  8. TC基础与自动化

    前言 互联网产品的测试常常要覆盖在不同网络下的表现,例如丢包,带宽受限,时延及抖动等网络较差的情况,为了测试场景的网络情况可定义及复现,就需要有个工具对弱网进行模拟.业界一些通用的弱网模拟工具,如NE ...

  9. 题解【洛谷P1948】[USACO08JAN]电话线Telephone Lines

    题面 题解 很显然,答案满足单调性. 因此,可以使用二分答案求解. 考虑\(check\)的实现. 贪心地想,免费的\(k\)对电话线一定都要用上. 每次\(check\)时将小于\(mid\)的边权 ...

  10. linux交互执行命令,expect

    转载 http://donex.blog.51cto.com/2005970/834467 原文比较乱,只能参考 本地交互执行: 1. 修改shell#!/usr/bin/expectset USER ...