php图片二进制字符串,php如何获取到formData上传图片的二进制数据

<input id="file" type="file" accept="image/png,image/gif,image/jpeg" name="file">

----------------------------------------------------------------

var fileInput = document.getElementById("file");

var file = fileInput.files[0];

var formData = new FormData();

formData.append("file", file);

$.ajax({

url: "./upload_photobank.php",

type: "POST",

data: formData,

processData: false,  // 告诉jQuery不要去处理发送的数据

contentType: false,   // 告诉jQuery不要去设置Content-Type请求头

complete : function(jqXHR, textStatus) {

if(jqXHR.status != 200){

console.log( 456 )

}else{

var jsonData = eval('(' + jqXHR.responseText + ')');

// var jsonData = jqXHR.responseText;

console.log(jqXHR.responseText);

}

}

});

php如何写 ,获取到上传的图片的二进制数据?

js部分是否有错误?

= base64_encode( file_get_contents($_FILES’photo’) );

首先确保表单的属性要有

enctype="multipart/form-data"

,实例化FormData不能为空啊!为空就获取不到表单值啊

用$_FILES,而不是$_POST

上传代码要写到input的“change”事件里……还有ajax的回调有点怪,都complate了就不要再判断status了吧。。

可以参考下我写的前端图片直传OSS试验

FormData

就是表单,所有数据的处理和表单是一样的,所以PHP也是一样的处理,上传文件仍然是通过

$_FILES

来处理。

FormData 就是用表单提交文件的另一种方式,比较先进而已,PHP端获取他的文件名,跟传统方式没区别,还是用FILES数组。

后台该怎么获取就怎么获取,用的都是$_FILES,不过需要注意的是jQuery的低版本好像无法发送二进制,我自己做过,是通过写原生的 ajax 来解决的。

输入流 php://input

先检查前端

console.log(file)

有没有值

有的话,走下一步

php端检查

var_dump($_FILE);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值