模板

{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. linux 搭建python虚拟环境

    requirements.txt 包含paramiko,pysfp.setuptools,适用python版本3.6.6+ 前提编译安装python wget wget https://www.pyt ...

  2. Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目

    1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...

  3. C++-POJ3735-Training little cats[矩阵乘法][快速幂]

    矩阵快速幂,主要是考构造.另外,swap总是写龊? 为什么?干脆放弃了.唉,我太难了. 思路:操作e和s都很好想,主要是g操作 我们可以额外空出一位,记为1,每次要加1,就对这个额外的1进行计算即可 ...

  4. java中堆栈的一些理解备忘

    堆:用来存放对象的信息,同一个类存放各自的成员变量,共享对象的方法. 栈:用来保存局部变量的值,包括基本数据类型的值.保存类的实例(堆区对象的引用).保存加载方法的帧. 常量池:包含了一个类型所有的对 ...

  5. IP地址分类及其相关计算问题

    IP地址分类及其相关计算问题 公网IP和子网IP 公网IP: • A类:1.0.0.0 到 127.255.255.255 主要分配 给大量主机而局域网网络数量较少的大型网络 • B类:128.0.0 ...

  6. maven通过pom文件下载相关依赖包的网址

    下载有关依赖插件的网址去MVNREPOSITORY仓库寻找对应的版本然后添加到pom文件中就可以自动下载了 网址为:https://mvnrepository.com

  7. Graph Regularized Feature Selection with Data Reconstruction

    Abstract • 从图正则数据重构方面处理无监督特征选择: • 模型的思想是所选特征不仅通过图正则保留了原始数据的局部结构,也通过线性组合重构了每个数据点: • 所以重构误差成为判断所选特征质量的 ...

  8. django实现简易登录注册

    经过一些文档的理解,以及一些时间的琢磨.我觉得可以用django做一些小项目了 先说说登录功能吧. 先创建一个app,用admin命令 在cmd打开到manage.py同级目录下,django-adm ...

  9. AntDesign(React)学习-10 Dva 与后台数据交互

    明天正式在线办公没时间学习了,今天晚上再更新一篇, 代码提交一次:https://github.com/zhaogaojian/jgdemo 1.src下创建services目录 创建文件userSr ...

  10. laravel如何向视图传递值

    1.定义路由 Route::get('demo','DemoController@demo'); 2.定义控制器(内with();方法就是定义传递的值 key=>value)=>" ...