如何在 php 变量中的服务器上存储 base64 图像?
How to Store base64 image on server which is in php variable?
我正在尝试将 base64 图像上传到服务器,因此我将其转换为图像,但它没有上传到服务器上。上传图片时出现的错误是:
Notice: Undefined index: 584fb34801024.png in
/home/dev/public_html/wp-content/plugins/paypal-frontend-registration/advertise_step_three.php on line 45 {"success":0,"message":"Server error. Could not upload."}
这是我正在尝试的代码:
$sign_img=$_POST['hdn_sign_img'];
$sign_img=str_replace('\"','',$sign_img);
$imageData = $sign_img;
list($type, $imageData) = explode(';', $imageData);
list(,$extension) = explode('/',$type);
list(,$imageData) = explode(',', $imageData);
$fileName = uniqid().'.'.$extension;
$imageData = base64_decode($imageData);
$data = file_put_contents($fileName, $imageData);
var_dump($data);
$target = '/home/dev/public_html/wp-content/uploads';
$result = move_uploaded_file( $_FILES[$fileName], $target);
if($result){
$response["success"] = 1;
$response["message"] = "Upload Successful.";
die(json_encode($response));
}else{
$response["success"] = 0;
$response["message"] = "Server error. Could not upload.";
die(json_encode($response));
}
如果你真的想把它存储在一个文件中而不使用最常见的PHP上传方法,你可以使用file_put_contents()
。
file_put_contents('/path/to/filename.ext', $imageData);
瞧。它已保存到您的服务器。
示例来自 PHP.net
这是 move_uploaded_file()
的示例
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() may prevent filesystem traversal attacks;
// further validation/sanitation of the filename may be appropriate
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
一些阅读
我正在尝试将 base64 图像上传到服务器,因此我将其转换为图像,但它没有上传到服务器上。上传图片时出现的错误是:
Notice: Undefined index: 584fb34801024.png in /home/dev/public_html/wp-content/plugins/paypal-frontend-registration/advertise_step_three.php on line 45 {"success":0,"message":"Server error. Could not upload."}
这是我正在尝试的代码:
$sign_img=$_POST['hdn_sign_img'];
$sign_img=str_replace('\"','',$sign_img);
$imageData = $sign_img;
list($type, $imageData) = explode(';', $imageData);
list(,$extension) = explode('/',$type);
list(,$imageData) = explode(',', $imageData);
$fileName = uniqid().'.'.$extension;
$imageData = base64_decode($imageData);
$data = file_put_contents($fileName, $imageData);
var_dump($data);
$target = '/home/dev/public_html/wp-content/uploads';
$result = move_uploaded_file( $_FILES[$fileName], $target);
if($result){
$response["success"] = 1;
$response["message"] = "Upload Successful.";
die(json_encode($response));
}else{
$response["success"] = 0;
$response["message"] = "Server error. Could not upload.";
die(json_encode($response));
}
如果你真的想把它存储在一个文件中而不使用最常见的PHP上传方法,你可以使用file_put_contents()
。
file_put_contents('/path/to/filename.ext', $imageData);
瞧。它已保存到您的服务器。
示例来自 PHP.net
这是 move_uploaded_file()
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
// basename() may prevent filesystem traversal attacks;
// further validation/sanitation of the filename may be appropriate
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}