图片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 ...
随机推荐
- PHP去掉html中的空行、空白函数
function DeleteHtml($str){ $str = trim($str); $str = ereg_replace("\t","",$str); ...
- HttpWebRequest.AddRange 支持long类型
很久很久以前,在哪个FAT32格式还流行的年代,文件大小普遍还没超过4G的年代,.Net已经出来了. 而那时候.Net实现的HTTP断点续传协议,还没预料到如此普及(我猜的).那时候的HttpWebR ...
- C++实现文件内字符数、单词数、行数的统计
先给出github上的代码链接以及项目需求 1. 项目简介 这个项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处 ...
- Flink 报错 "Could not find a suitable table factory for 'org.apache.flink.table.factories.StreamTableSourceFactory' in the classpath"
先上代码: table = tablexx.select('*).tablexx.groupBy('x).select('x, xx.count ) tableEnvironment // decla ...
- Hibernate中的实体规则、对象状态和进阶-一级缓存
一.hibernate中的实体规则 1.实体类创建的注意事项 2.主键类型 3.主键生成策略 (1)代理主键 (2)自然主键 二.hibernate中的对象状态 1.对象分为三种状态 2.三种状态的转 ...
- Mac- appium 环境配置
一: 下载 appium : https://bitbucket.org/appium/appium.app/downloads/ 下载安装完,打开appium,安全性与隐私设置 检测提示: ...
- php 批量下载文件
public function batchDownload() { $filename = 'tmp.zip'; $zipName = date('YmdHi') . '.zip'; $files = ...
- 用java实现的英汉词典
import java.io.*; import java.util.*; public class MyDictionary { static private Map<String, Stri ...
- UC浏览器input文本框输入文字回车键自动提交
这是测试今天在jira给我提出的一个bug 下面是贴的代码 屏蔽或者禁止回车键 <!DOCTYPE html> <html> <head> <meta cha ...
- 使用pdf.js预览实现读取服务器外部文件
不知道大家使用百度网盘的文件预览功能,f12看过控制台没有. 发现百度网盘使用的预览文件功能全是基于开源pdf .js的 接下来正题,我们在使用pdf.js默认是读取发布容器内部的文件,读取外部的文件 ...