抓包后看见的是这样的图像,name多了诸如这些东西
Content-Disposition: form-data; Content-Type: image/jpeg
后台代码
$get = $_POST;
file_put_contents("./Upload/img/".time()."-avatar.txt",base64_decode($get));
结果这个txt是空的
抓包后看见的是这样的图像,name多了诸如这些东西
Content-Disposition: form-data; Content-Type: image/jpeg
后台代码
$get = $_POST;
file_put_contents("./Upload/img/".time()."-avatar.txt",base64_decode($get));
结果这个txt是空的
看日志,你的数据不是base64的,所以用 base64_decode解不出来,$get是array,不是 string。
猜测你要使用的应该是 base64_encode 转化为 base64编码,他的第一个参数应该是 string 类型。你的 $get 是array,没法转换。
应该用到下面的技术,附上官方文档:PHP_FILES,move_uploaded_file
给你你的代码,可以打印下:
$file = $_FILES["file"];
print_r($file); //看看输出了什么
如果存在 $file['tmp_name'],用 move_uploaded_file 移到新位置即可
遇到这种小问题不应该写个print_r($GLOBALS)
看看文件跑到哪儿去了吗? 具体要看你是通过什么方式提交图片的,原生js也可以搞出很多花样 -- 比如直接FormData会提交到$_FILES
,又如用FileReader读取文件然后在自行base64编码后提交会到$_POST
中...
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
js 的这些提交文件的方式对文件类型有限制,如果你把图片当做文件来传它不能解析,所以用form表单或者frame框架去做