图片base64上传时可能遇到的问题
base64上传图片时服务器接到的值可能会丢失字符串
解决方法如下:(分为单个上传和多个上传)
<?php
$BASE_DIR = "../";
//文件上传
$img = isset($_POST['img'])?$_POST['img']:'';
$dir = isset($_POST['dir'])?$_POST['dir']:'img';
$result = array();
$arr = [];
if (is_array($img)){
foreach ($img as $v){
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $v, $result)) {
$type = $result[];
$file = "images/{$dir}/" . date('Ymd', time()) . "/";
if (!file_exists($file)) {
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($file, , true);
}
$file = $file . time(). '_' .rand(,) . ".{$type}";
$data = str_replace(' ','+',$v);
if (file_put_contents($file, base64_decode(str_replace($result[], '', $data)))) {
$arr[] = $file;
} else {
return false;
}
}
}
echo json_encode($arr);
} else {
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img, $result)){
$type = $result[];
$file = "images/{$dir}/" . date('Ymd', time()) . "/"; if (!file_exists($file)) {
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($file, , true);
}
$file = $file . time() . '_' . rand(, ) . ".{$type}";
$data = str_replace(' ', '+', $img);
if (file_put_contents($file, base64_decode(str_replace($result[], '', $data)))) {
$file = substr($file,strpos($file,'/')+);
echo json_encode($file);
} else {
return false;
}
}
}
主要就是把服务器接到的值做一个字符串替换,解决问题!
以上就是这次的全部内容!
图片base64上传时可能遇到的问题的更多相关文章
- 大图片上传(ImageIO,注意有的图片不能上传时因为他是tiff格式)
一下是必要的: 1.enctype="multipart/form-data" 2. //不要使用myeclipse自动生成的get.set方法(struts2中的用法) publ ...
- js基础进阶--图片上传时实现本地预览功能的原理
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...
- js 图片压缩上传(base64位)以及上传类型分类
一.input file上传类型 1.指明只需要图片 <input type="file" accept='image/*'> 2.指明需要多张图片 <input ...
- base64格式的图片如何上传到oss
---恢复内容开始--- 对于base64图片的上传这个东西,一直是一个问题尤其是上传到oss.我们这次开发由于需要修剪图片,使用了h5的很多新特性. h5修剪图片,使用了我们的canvas.这个步骤 ...
- iOS:图片上传时两种图片压缩方式的比较
上传图片不全面的想法:把图片保存到本地,然后把图片的路径上传到服务器,最后又由服务器把路径返回,这种方式不具有扩展性,如果用户换了手机,那么新手机的沙盒中就没有服务器返回的图片路径了,此时就无法获取之 ...
- 三款不错的图片压缩上传插件(webuploader+localResizeIMG4+LUploader)
涉及到网页图片的交互,少不了图片的压缩上传,相关的插件有很多,相信大家都有用过,这里我就推荐三款,至于好处就仁者见仁喽: 1.名气最高的WebUploader,由Baidu FEX 团队开发,以H5为 ...
- Html5+asp.net mvc 图片压缩上传
在做图片上传时,大图片如果没有压缩直接上传时间会非常长,因为有的图片太大,传到服务器上再压缩太慢了,而且损耗流量. 思路是将图片抽样显示在canvas上,然后用通过canvas.toDataURL方法 ...
- ASP.NET MVC图片管理(上传,预览与显示)
先看看效果(下面gif动画制作有点大,5.71MB): 题外话:上面选择图片来源于Insus.NET的新浪微博:http://weibo.com/104325017 也是昨晚(2015-07-03)I ...
- PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例
网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. http://blog.csdn.net/cqcre/arti ...
随机推荐
- AX_Unit
UnitConvert::qty(_deliverNow, salesLine.SalesUnit, salesLine.inventTable().inventUnitId(), ...
- layer.tips属性
layer.tips(新加的内容,'选择节点',{time: 0, area: ['20%', '20%'], skin: 'layui-layer-rim', tips: [3, '#ffffff' ...
- delphi fastreport 动态加载图片
(frxReport1.FindObject('picture1') as TfrxPictureView).Picture.LoadFromFile('d:\c.jpg'); frxReport1. ...
- list常用方法
1.切片: ①.顾头不顾尾,从头开始取,但不包括最后一个. ②.从左向右数为正,从零开始,从右开始为负,从-1开始 如: names=['1','2','3'] ames[-1]与names[2]效果 ...
- HTML的Tomcat
修改D:\software\apache-tomcat-8.0.44\webapps\ROOT\WEB-INF\web.xml: <?xml version="1.0" en ...
- sql语句创建数据表
unsigned 数值类型 无符号化 AUTO_INCREMENT 自增长 PRIMARY KEY 唯一主键 COMMENT 备注信息 BIT 类型只有1和0两个值 enum 枚举数值类型 UNIQU ...
- lwip协议栈移植(1)
lwip移植分为两类: 1,只移植内核核心,用户应用程序编写只能基于raw/callback api进行 2,移植内核核心和上层API函数模块,用户可以使用所有三种API编程,即 raw/callba ...
- flag读取控制台参数
package main import ( "fmt" "os") func main() { arg := os.Args if len(arg) < ...
- Django积木块11 —— 缓存
缓存 Django的缓存可以缓存视图中的函数,模版中的内容,和一些不长变化的数据. # setting CACHES = { 'default':{ 'BACKEND':'django.core.ca ...
- Redis和memcached缓存技术
缓存的定义:缓存就是在内存中存储的数据备份,当数据没有发生本质变化的时候,我们避免数据的查询操作直接连接数据库,而是去 内容中读取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度 ...