Как преобразовать BLOB-файл (ы) как изображение на сервере с Php? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь сохранить скриншот, преобразованный в BLOB-объект, на сервер MySQL.BLOB-объект не сохраняется на сервере с использованием кода PHP, показанного ниже.Я пробовал POST, PUT и GET.Это не загрузка файла, а блоб из скриншота рабочего стола пользователя.

var canvas = document.getElementById('screenshot');
canvas.toBlob(function(blob) {
var url='http://20four7va.co/api/SaveScreenshotImg.php';
var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
oReq.onload = function (oEvent) {
// Uploaded.
};  
oReq.send(blob);
}, "image/jpeg", 0.5);  

<?php

$image= $_POST['bl'];
$eid= $_POST['i'];

$conn = new mysqli('example.com','asdasd','dsgfhd','dgfhgsdf');

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$query = "UPDATE TR_SCREENSHOTS SET SCRN_SHOT = '".$image."' WHERE RECORD_ID =".$eid."";

if ($conn->query($query) === TRUE) {    
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}

$conn->close();

?>

Я проверил некоторые ссылки здесь относительно BLOB на сервер, но он не отвечает цели.Я ожидаю сохранить большой двоичный объект как изображение со скриншота.

1 Ответ

0 голосов
/ 08 июля 2019

Пожалуйста, используйте подготовленные операторы для ваших запросов, это вызовет большие проблемы для вашего кода, однако, чтобы быть более конкретным для вашего вопроса, вам нужно получить содержимое большого двоичного объекта, используя php: input

$file=(file_get_contents('php://input'));

Теперь я надеюсь, что вы исправите свой код, чтобы использовать более качественные операторы, но вы бы это написали так, если бы не исправили свой подверженный ошибкам код?

var canvas = document.getElementById('screenshot');
canvas.toBlob(function(blob) {
var url='http://20four7va.co/api/SaveScreenshotImg.php';
var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
oReq.onload = function (oEvent) {
// Uploaded.
};  
oReq.send(blob);
}, "image/jpeg", 0.5);  

<?php
//Get image from request here
$image=file_get_contents('php://input');
$eid= $_POST['i'];

$conn = new mysqli('example.com','asdasd','dsgfhd','dgfhgsdf');

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 
if($image){
  $query = "UPDATE TR_SCREENSHOTS SET SCRN_SHOT = '".$image."' WHERE RECORD_ID 
   =".$eid."";
 }
 else{
     //handle the scenario that the image does not exist or was not sent
 }


if ($conn->query($query) === TRUE) {    
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}

$conn->close();

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...