ajax请求去获取base64_php如何获取ajax提交过来的经过base64处理后的图片
问 题
function onSelectPhoto(files) {
file_obj = files[0];
if (use_general_upload) {
return;
}
var filesize = file_obj.size < 5120 || file_obj.size > 5242880;
var allow_type = '|.jpg|jpeg|.png|.gif|';
var ext_name = '|' + file_obj.name.toLowerCase().substr(file_obj.name.length - 4) + '|';
var filetype = (allow_type.indexOf(ext_name) == -1 && file_obj.name.indexOf(".") > 0);
var reader = new FileReader();
reader.onload = function (e) {
if (e.target.result.substr(0, 11) == 'data:base64') {
$("#preview_img").attr('src',
"data:application/octet-stream;"
+ e.target.result.substr(e.target.result.indexOf("base64,")));
} else {
$("#preview_img").attr('src', e.target.result);
}
}
if (filesize) {
file_obj = false;
showTextTime("您选择的文件大于5MB,请选择小于5MB的照片", 3000);
return false;
}
if (filetype) {
file_obj = false;
showTextTime("您选择的文件格式有误,应为JPG、PNG或GIF类型的文件", 3000);
return false;
}
file_name = file_obj.name;
reader.readAsDataURL(file_obj); //
// alert(reader);
}
图片上传处理代码
function upload_photo() {
if (file_obj == false) {
showTextTime("请先从手机中选取要上传的照片", 2000);
return false;
}
if (uploading) {
showTextTime("照片正在上传中,请稍候...", 2000);
return false;
}
uploading = true;
showLoading(loading_src, "照片上传中...", 0);
if (use_general_upload) {
document.forms[0].submit();
} else {
var ui = $("#upload_ifr");
var ui = ui[0];
ui.contentWindow.upload_photo();
}
return false;
}
function upload_photo() {
var xhr = new XMLHttpRequest();
if (xhr.upload) {
xhr.onreadystatechange = function(e) {
window.top.callbackHandler(e, xhr);
};
xhr.upload.οnprοgress=function(e){
if(e.lengthComputable){
var percent =(e.loaded / e.total *100|0)+"%";
}
}
var formData = new FormData();
formData.append('files', window.top.file_obj);
// alert(formData);
xhr.open("POST", 'upload_file.php', true);
xhr.send(formData);
}
}
这里我应该怎么在upload_file.php获取到传递过来的formData
解决方案
`
$smeta = $_POST['smeta'];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $smeta, $result)) {//base64上传
$data = base64_decode(str_replace($result[1], '', $smeta));
$dataname = './Uploads/' . uniqid() . '.' . $result[2];
if (file_put_contents($dataname, $data)) {
$this->ajaxoutput($dataname); //返回数据结构自行封装
}else{
$this->ajaxerror('上传出错');
}
}`
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起
ajax请求去获取base64_php如何获取ajax提交过来的经过base64处理后的图片相关推荐
- 循环发ajax请求,在循环中发送jquery ajax请求
我在我的Web应用程序的Map中实现了"空间选择",它选择Streets的数量.选择后,我会为使用"选择处理程序"选择的所有街道获取唯一的街道标识.在循环中发送 ...
- php 判断是否是ajax请求,php实现判断是否为ajax请求的方法
这篇文章主要介绍了php判断是否为ajax请求的方法,结合实例形式分析了ajax请求的原理及后台针对ajax请求的判断技巧,需要的朋友可以参考下 先说前端使用 jQuery 时怎么区分: jQuery ...
- java 判断请求为 ajax请求_Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求...
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>> ...
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断 ...
- base64编码后的图片如何获取它的宽和高
具体获取宽和高的方法: 前端传过来的是base64编码后的图片 具体代码如下:(不适合直接copy,可以简单看一下,很简单) public com.tfiir.srl.framework.Respon ...
- ajax请求到参数太大获取参数失败问题,Ajax请求参数较长导致请求失败
Ajax请求参数比较长,第5行参数大概1100个字符吧,是接口的请求报文. $.ajax({ type:"POST", url:"${ctx}/test.action?m ...
- ajax请求是什么?完整的Ajax请求步骤及get与post请求的区别
一.ajax的本质其实就是在HTTP协议的基础上以异步的方式与服务器进行通信. 二.ajax的常见的请求方法 : get .post.put .delete等 三.ajax请求的实现步骤: 创建XML ...
- 监控ajax请求的时间,找出完成Ajax请求所需的时间
繁星淼淼 由于javascript使用事件队列,因此无法提供准确的时间.这意味着您的程序可以这样执行:开始AJAX请求同时处理等待的鼠标单击事件/任何其他等待的代码行开始处理AJAX就绪响应不幸的是, ...
- ajax 请求_你了解前端出现Ajax跨域请求的原因吗?
ajax的跨域真正面目 作为一名前端开发人员,谈到Ajax几乎是无人不知无人不晓,每天都会跟Ajax打打交道,特别在如今提倡前后端分离的时代,更是相处甚多,使用过程中碰到最多的一个问题相信应该是请求跨 ...
最新文章
- Hama笔记:Unable to load native-hadoop library 和 Snappy native library not loaded 的解决
- 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)
- Java Zip压缩实现(亲测)
- lightning接口_Lightning太赚钱?iPhone永远不会用Type-C
- 线性分组码c语言实验报告,C语言线性分组码(附注释).doc
- maven设置socks代理
- python以追加方式打开文件 线程安全吗_多线程追加文件,不加锁,会出现什么情况 ?...
- mtk android工具包,MTK Android software Tools工具的说明
- 洛谷 1972 莫队
- NumPy Beginner's Guide 2e 带注释源码 四、NumPy 便利的函数
- 自学python要看哪些书-学习机器学习应该看哪些书籍?
- Django+MySQLDB配置
- adb小天才_ADB工具包2020年最新版下载-支持解锁新机BL调试ROOT等各种操作
- 《自然语言处理:基于预训练模型的方法》第七章 预训练语言模型-BERT
- html5实现对试题图片批改效果,类似盖章效果
- android studio systrace,android – Systrace输出错误
- AMS1117和LM2596S芯片的问题总结
- ubuntu下CHM阅读器
- oracle sql查数据是否有重复
- Mac—删除默认英文输入法