1.在控制器中添加调用方法
public function image(Request $request)
{
try {
return response()->json(['code' => 200, 'url' => Upload::appletsImage()]);
}catch (\Exception $exception) {
return response()->json(['code' => 404, 'url' => $exception->getMessage()]);
}
}
2.在模型中添加保存文件的方法
public static function appletsImage()
{
$file = $_FILES['file'];
$Path = "/images/" . date('Y-m-d') . "/withdraw/";
if (!empty($file)) {
$type = pathinfo($file['name'])['extension'];
if (!in_array($type, ['jpg', 'png', 'gif'])) {
throw new \Exception('不支持以外jpg和png还有gif的图片格式!');
}
$fileName = request()->server('DOCUMENT_ROOT') . '/storage' . $Path;//文件路径
$upload_name = 'img_' . date("YmdHis") . rand(0, 100) . '.' . $type;//文件名加后缀
if (!file_exists($fileName)) {
//进行文件创建
mkdir($fileName, 0777, true);
}
$imageSavePath = $fileName . $upload_name;
if (move_uploaded_file($_FILES['file']['tmp_name'], $imageSavePath)) {
return $Path . $upload_name;
}
}
return null;
}
3.小程序测试代码
chooseImage(tapIndex) {
var checkeddata = true
var that = this
var domain = wx.getStorageSync('config')
wx.chooseImage({
//count表示一次可以选择多少照片
count: 1,
//sizeType所选的图片的尺寸,original原图,compressed压缩图
sizeType: ['original', 'compressed'],
//如果sourceType为camera则调用摄像头,为album时调用相册
sourceType: [that.data.sourceType[tapIndex]],
success(res) {
// tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths
//将选择到的图片缓存到本地storage中
wx.uploadFile({
url: 'http://fiveyears.cc/upload/image',
filePath: tempFilePaths[0],
name: 'file',
success (res){
var data = JSON.parse(res.data);
console.log(data)
wx.setStorageSync('tempFilePaths', data.url)
wx.showToast({
title: '选择成功',
icon: 'success',
duration: 2000
})
}
})
/*
由于在我们选择图片后图片只是保存到storage中,所以我们需要调用一次 setHeader()方法来使页面上的头像更新
*/
that.setHeader();
}
})
网友评论