javascript - 将数据从 Ajax 返回到 PHP
问题描述
下午好!
我正在尝试将我的图片名称保存在数据库中......我有以下 Ajax 代码..它完美地保存了折叠内的图片,但我无法将文件名返回到 PHP 变量中upload_foto_webcam.php...
我有 2 页...我的第一页是一个表单,它是我调用函数 Salvar_foto() 的地方...保存图片后,我想在表单的同一页面中返回已保存图像的名称。
function salvar_foto()
{
var file = document.getElementById("base64image").src;
var formdata = new FormData();
formdata.append("base64image", file);
var ajax = new XMLHttpRequest();
ajax.addEventListener("load", function(event) { upload_completo(event);}, false);
ajax.open("POST", "upload_foto_webcam.php");
ajax.send(formdata);
document.getElementById('take_pic').style.display = 'none';
document.getElementById('take_pic_again').style.display = 'none';
document.getElementById('save_pic').style.display = 'none';
}
这是我的 PHP 文件:
<?php
define('UPLOAD_DIR', 'uploads/');
$img = $_POST['base64image'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR .date("d-m-Y")."_".uniqid(). '.jpg';
$success = file_put_contents($file, $data);
$cliente_foto_webcam = $file;
print $success ? $file : 'Não é possível salvar o arquivo.';
?>
我想取回 $cliente_foto_webcam 变量...我该怎么办?
如果您能帮助我,我将不胜感激!
tks
解决方案
我会建议您的 PHP 后端提供 JSON 答案,例如:
{
"filename": "my_image.jpg",
"message": "Image uploaded!",
"success": true
}
这将是这样的:
<?php
define('UPLOAD_DIR', 'uploads/');
$img = $_POST['base64image'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR .date("d-m-Y")."_".uniqid(). '.jpg';
$success = file_put_contents($file, $data);
$cliente_foto_webcam = $file;
if ($success) {
echo json_encode([
"filename" => $cliente_foto_webcam,
"message" => "Image uploaded!",
"success" => true
]);
} else {
echo json_encode([
"filename" => null,
"message" => "Couldn't upload image",
"success" => false
]);
}
?>
推荐阅读
- oracle - 基于别名字段的Oracle递归查询
- javascript - 获取数据并将数据发布到外部 Web API、服务器端还是客户端?
- python - 匹配熊猫列中列表和列表之间的相似元素
- javascript - 无法将 jquery 数据表中的 Json 数据与正确的数据绑定
- c# - 带有字符串参数的构造函数和带有对象参数的相同重载
- c# - 如何使用表示查询的递归结构解析 JSON
- jvm - JVM 选项 MaxMetaspaceSize - 要设置的最佳值是多少?
- jquery - jQuery TextFX 插件(不是 textfx 2),如何让它动画多行?
- c# - 使用激活库模式注册 .NET DLL
- javascript - css 动画跨屏并返回