基于ThinkPHP解决了前端以base64形式传文件实现文件上传的函数封装

/** * 封装base64位图片上传 */function base64_upload($base64) {    $base64_image = str_replace(‘ ‘, ‘+‘, $base64);    //post的数据里面,加号会被替换为空格,需要重新替换回来,如果不是post的数据,则注释掉这一行    if (preg_match(‘/^(data:\s*image\/(\w+);base64,)/‘, $base64_image, $result)){        //匹配成功        if($result[2] == ‘jpeg‘){            $image_name = uniqid().‘.jpg‘;            //纯粹是看jpeg不爽才替换的        }else{            $image_name = uniqid().‘.‘.$result[2];        }        $image_file = "./Public/Personal/{$image_name}";        //服务器文件存储路径        if (file_put_contents($image_file, base64_decode(str_replace($result[1], ‘‘, $base64_image)))){            return ‘/Public/Personal/‘.$image_name;        }else{            return false;        }    }else{        return false;    }}

原文地址:https://www.cnblogs.com/findher/p/10610514.html

时间: 2024-10-30 02:34:57

基于ThinkPHP解决了前端以base64形式传文件实现文件上传的函数封装的相关文章

ThinkPHP+JQuery实现文件的异步上传

前端代码 文件路径:application/index/view/index/index.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>ThinkPHP+JQuery实现文件的异步上传</title> </head> <body> <form id="a

JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串、blob对象在上传

主题: JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串.blob对象在上传. 用处: 从本地选择图片上传,如项目规定只能选择本项目文件夹下的图像上传为头像等. 主要思想: 使用canvas.toDataURL()方法将图片的绝对路径转换为base64编码. 具体用法: 在这我们引用淘宝服务器上的一张图片举例: var imgSrc = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.j

基于jQuery的ajax系列之用FormData实现页面无刷新上传

接着上一篇ajax系列之用jQuery的ajax方法向服务器发出get和post请求写,这篇主要写如何利用ajax和FormData实现页面无刷新的文件上传效果,主要用到了jQuery的ajax()方法和XMLHttpRequest Level 2的FormData接口.关于FormData,大家可以看MDN文档. 1,先看效果图 期望的功能和效果很简单:点击页面中的上传文件表单控件,选择文件后点击"ajax提交",将文件上传至服务器,上传成功后,页面给出一个简单的提示. 2,前端的代

前端本地文件操作与上传

前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发: 通过input type="file" 选择本地文件 通过拖拽的方式把文件拖过来 在编辑框里面复制粘贴 第一种是最常用的手段,通常还会自定义一个按钮,然后盖在它上面,因为type="file"的input不好改变样式.如下代码写一个选择控件,并放在form里面: <form> <input type=&q

使用ThinkPHP上传类处理KindEditor上传的图片

KindEditor作为一款可视化的HTML编辑器用起来确实比较方便,其本身也自带了图片上传的处理这里修改为TP上传处理图片,是为了保证上传图片的方便(目录独立于编辑器,便于增加水印等处理) 第一步:在模板html页面引入如下文件: <link rel="stylesheet" href="/data/editor/plugins/code/prettify.css" /> <script charset="utf-8" src

前端手势控制图片插件书写四(图片上传及Ios图片方向问题)

1.在图片上传中,使用的input的type为File的属性.使用filereader的Api let that = this; var file = document.getElementById("file").files[0]; console.log(document.getElementById("file").files); if(!/image\/\w+/.test(file.type)){ console.error("看清楚,这个需要图片

Ueditor 1.4.3.1 使用 ThinkPHP 3.2.3 的上传类进行图片上传

在 ThinkPHP 3.2.3 中集成百度编辑器最新版 Ueditor 1.4.3.1,同时将编辑器自带的上传类替换成 ThinkPHP 3.2.3 中的上传类. ① 下载编辑器(下载地址:http://ueditor.baidu.com/website/download.html),解压后放入项目根目录的 Data 目录并且将解压出来的目录重命名为 ueditor. 项目中的控制器 ./Application/Admin/Controller/BlogController.class.php

前端预览图片和H5canvas压缩图片上传

思路是将图片抽样显示在canvas上,然后用通过canvas.toDataURL方法得到base64字符串来实现压缩. 1.base64转二进制文件 /** * dataURL to blob, ref to https://gist.github.com/fupslot/5015897 * @param dataURI * @returns {Blob} */ function dataURItoBlob(dataURI) { var byteString = atob(dataURI.spl

基于file上传文件的并发上传(多个文件一起上传到后台并把数据存储的同一条数据中,如 数据库字段videopath,imge。前台发送来的文件file1,file2。 videopath=file1,imge=file2)

前台代码: <div class="tab-content"> <dl> <dt>所属栏目</dt> <dd> <div class="rule-single-select"> <select id="ddlCategoryId"> <option value="0">所有栏目</option> </select&