public.js
var graceJS = require('../../utils/grace.js');
import {config} from '../../config.js'
Page({
/**
* 页面的初始数据
*/
data: {imglist: [],
title:'',
content:'',
},
delImg(e) {
let index = e.currentTarget.dataset.index;
let array = [];
console.log(index);
for (var i = 0; i < this.data.imglist.length; i++) {if (i !== index) {array.push(this.data.imglist[i])
}
}
console.log(array);
this.setData({imglist: array,})
},
upimg() {
let that = this
var url = config.api_base_url + "upload_pic"
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success(res) {
const tempFilePaths = res.tempFilePaths;
wx.showLoading({title: '上传中',})
wx.uploadFile({
url,
filePath: tempFilePaths[0],
name: 'file',
success(res) {console.log(res.data);
wx.hideLoading()
if (res.data == '0') {graceJS.msg('上传失败');
}else{console.log(res.data)
if (res.data.indexOf("非法图片")>=0){graceJS.msg(res.data);
} else {graceJS.msg("上传胜利");
var array = that.data.imglist.concat(res.data)
that.setData({imglist: array,})
}
}
}
})
}
})
},
zf_title:function(e){
this.setData({title: e.detail.value})
},
zf_content: function (e) {
this.setData({content: e.detail.value})
},
tj_info: function (event){
var that = this;
console.log("event", event)
var title = this.data.title;
var content = this.data.content;
console.log(title)
console.log(content)
var imglist = that.data.imglist;
var uid = wx.getStorageSync('user').id
if (!title && !content) {graceJS.msg("请填写残缺");
} else {
// 写入数据库
if (uid != undefined) {
graceJS.post(
config.api_base_url + 'tiezi_add',
{title:title, content:content,uid:uid,imglist:imglist},
'json',
{}, // 此处 {} 代表不设置 header 数据
function(res){if (res.result == 1) {graceJS.msg(res.msg);
setTimeout(()=>{graceJS.navigate('../discover/discover','switchTab');
},2000)
}else{graceJS.msg(res.msg);
}
}
);
}else{graceJS.msg("用户 ID 获取失败");
}
}
},
/**
* 生命周期函数 -- 监听页面加载
*/
onLoad: function (options) { },
/**
* 生命周期函数 -- 监听页面首次渲染实现
*/
onReady: function () {},
/**
* 生命周期函数 -- 监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数 -- 监听页面暗藏
*/
onHide: function () {},
/**
* 生命周期函数 -- 监听页面卸载
*/
onUnload: function () {},
/**
* 页面相干事件处理函数 -- 监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {}
})
publish.wxml
<!--pages/publish/publish.wxml-->
<view>
<form >
<view class="publish_a">
<view class="publish_a1">
<view class="publish_a1_a">
<input type="text" name="title" bindinput="zf_title" placeholder="输出题目" />
</view>
<view class="publish_a1_b">
<textarea name="content" bindinput="zf_content" placeholder="输出内容文字"></textarea>
</view>
<view class="publish_a1_c">
<view class="publish_a1_c1" >
<image src="../../img/127.png" bindtap="upimg"></image>
</view>
<view class="publish_a1_c2">
<view wx:for="{{imglist}}" bindtap="delImg" data-index="{{index}}">
<image src="{{item}}" ></image>
<text>X</text>
</view>
</view>
</view>
</view>
</view>
<view class="publish_b" bind:tap="tj_info"> 公布帖子 </view>
</form>
</view>
publish.wxss
/* pages/publish/publish.wxss */
page{padding-bottom: 120rpx;}
.publish_a{padding: 20rpx;}
.publish_a1{
background-color: #f5f2f4;
padding: 20rpx;
}
.publish_a1_a input{
width: 100%;
height: 80rpx;
line-height: 80rpx;
font-size: 28rpx;
font-weight: bold;
}
.publish_a1_b textarea{
width: 100%;
font-size: 28rpx;
}
.publish_a1_c1{margin-bottom: 20rpx;}
.publish_a1_c1 image{
display: block;
width: 200rpx;
height: 200rpx;
}
.publish_a1_c2{
display: flex;
flex-wrap: wrap;
}
.publish_a1_c2 view{
position: relative;
width: 200rpx;
height: 200rpx;
margin-right: 20rpx;
margin-bottom: 20rpx;
}
.publish_a1_c2 image{
display: block;
width: 100%;
height: 100%;
}
.publish_a1_c2 text{
display: block;
position: absolute;
right: 0;
top: 0;
width: 40rpx;
height: 40rpx;
text-align: center;
line-height: 40rpx;
font-size: 26rpx;
color: #fff;
background-color: rgba(0,0,0,0.3);
}
.zf_btn{width: 500px;}
.publish_b{
position: fixed;
left: 0;
bottom: 0;
/* width: 100%; */
background-color: #a67f4a;
line-height: 100rpx;
text-align: center;
color: #fff;
font-size: 30rpx;
min-width: 380px;
width: 100%;
padding: 0;
margin: 0;
}
tp
引入
use EasyWeChat\Factory;
public function __construct (Request $request = null)
{
$this->config = [
'app_id' => 'wx4**********fd45a65',
'secret' => '082dec1****5b93d286c093e01',
'response_type' => 'array',
'log' => [
'level' => 'debug',
'file' => __DIR__.'/log/wechat.log',
],
];
$this->uid = '';
}
public function tiezi_add(){$data = input('post.');
if($data['imglist']!=[]){foreach ($data['imglist'] as $k => $vo) {$data['imglist'][$k] = trim($vo);
}
$data['album'] = trim(implode(',', $data['imglist']));
}
unset($data['imglist']);
$data['cid'] = 17;
$data['status'] = 1;
$data['sort'] = 0;
$data['ctime'] = time();
if(!isset($data['album'])){return jserror('至多上传一张图片');
}
// 验证
$miniProgram = Factory::miniProgram($this->config);
$result = $miniProgram->content_security->checkText($data['content']);
$result2 = $miniProgram->content_security->checkText($data['title']);
if($result['errcode']!='0'){return jserror('含有非法关键词');
}
if($result2['errcode']!='0'){return jserror('含有非法关键词');
}
// 保留
$res = Db::name('post')->insert($data);
if($res){return jssuccess('公布胜利');
}else{return jserror('公布失败');
}
}
public function upload_pic(){$file = request()->file('file');
$info = $file->validate(['ext'=>config()['web']['file_ext']])->move('./public/upload/admin/file');
$getSaveName = str_replace('\\', '/', $info->getSaveName());//win 下反斜杠替换成斜杠
$msg = 'http://'.$_SERVER['SERVER_NAME'].'/public/upload/admin/file/'.$getSaveName;
if(is_file('./public/upload/admin/file/'.$getSaveName)){
// 验证图片
$miniProgram = Factory::miniProgram($this->config);
$result = $miniProgram->content_security->checkImage('./public/upload/admin/file/'.$getSaveName);
if($result['errcode']!='0'){return '非法图片';}else{return $msg;}
################
}else{return '0';}
}
高颜值后盾管理系统收费应用 ### 子枫后盾管理系统 ###,可在宝塔面板间接装置
欢送关注我的公众号:子枫的微妙世界,取得独家整顿的学习资源和日常干货推送。
如果您对我的其余专题内容感兴趣,中转我的集体博客:www.wangmingchang.com。