将通过 AJAX 上传的二进制数据保存在 PHP 服务器上
Save binary data uploaded through AJAX on PHP server
我已经将.png
图像文件读入数组缓冲区。
var readSingleFile = function(e) {
var file = e.target.files[0];
if (!file) {
return;
}
var reader = new FileReader();
reader.onload = function(e) {
var contents =new Int8Array(e.target.result);
$.ajax({
url: 'saveBinaryData.php',
type: 'POST',
contentType: 'application/octet-stream',
data: contents,
processData: false
});
};
reader.readAsArrayBuffer(file);
}
正如 AJAX 所描述的那样,它被发布到 PHP 文件中。
如何将此二进制数据转换为图像格式?
到目前为止我的代码:
<?php
if($data=file_get_contents($_POST)){
echo "Error! Data not read!";
return;
}
$data = imagecreatefromstring($data);
var_dump($data);
file_put_contents("recentImage1.png", $data);
?>
这些取自谷歌中的各种解决方案。 图像文件已创建,但不包含任何内容,因此无法打开。
这是保存上传文件的简单工作演示:
.JS:
<script src='https://code.jquery.com/jquery-2.2.3.min.js'></script>
<script>upload = function() {
f = new FileReader();
f.onload = function(e) {
$.ajax({
url: '?upload',
type: 'POST',
contentType: 'application/octet-stream;charset=UTF-8',
data: e.target.result.split(",", 2)[1], //remove text header
processData: false
});
};
f.readAsDataURL($('input')[0].files[0]);
}
</script>
.HTML:
<input type="file" />
<button onclick="upload()">Upload</button>
和 PHP:
<?php
if (isset($_GET['upload'])) {
$file = file_get_contents('php://input');
file_put_contents('recentImage1.png', base64_decode($file));
}
所有代码都在单个文件中,只需分成 3 个部分即可更好地格式化。
使用过的帖子:
- 将通过 AJAX 上传的二进制数据保存在 PHP 服务器上
- file_get_contents("php://input") 或 $HTTP_RAW_POST_DATA...
- fileReader.readAsBinaryString 以上传文件
- 使用 xhr 上传文件时,在何处以及如何设置正确的编码
相关文章:
- 如何在服务器上保存数据以备日后使用
- zp.midpass.ru如何在浏览器中保存数据
- Google Chrome扩展在本地保存数据
- Javascript/AngularJS本地保存数据
- jquery ajax到php脚本不保存数据
- 使用LocalStorage保存数据
- jquery保存数据,直到phonegap应用程序关闭
- 以HTML和javascript保存数据
- 单击指向外部网站的链接后,通过MySQL保存数据
- AngularJS:无法保存数据
- 如何在不编码或保存数据的情况下将二进制数据从javascript传递到actionscript(网页到flash)
- 如何在AngularJS中刷新时在服务中持久保存数据
- 如果从浏览器控制台提交,Knockoutjs不会保存数据
- 在nodejs中执行procces数组时保存数据
- MongoDB 在保存数据时抛出错误(拓扑已损坏)
- HTML 在表单之间保存数据
- HTML/JS - 保存数据-* 供以后使用
- 保存数据 asp.net 后单击按钮时显示警报消息
- Chrome 扩展程序保存数据
- 如何在应用程序上保存数据