그래서 PHP 페이지에 blob 변수를 보내야하는 페이지를 만들었습니다. php 페이지는 pdo를 사용하여 blob을 mysql에 업로드한다. 나는 텍스트 변수를 전송하고 잘 업로드하도록 아약스를 설정했다. 그러나 BLOB을하려고 할 때 작동하지 않습니다.ajax와 함께 .js 파일에서 PHP로 BLOB 보내기
메인 페이지
var blob = new Blob(["i am a blob"]);
$.ajax({
type: 'POST',
url: 'test.php',
data: {roll: blob},
});
PHP 페이지
$got = $_POST['roll']; //gets the variable
$pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
$query = $pdo->prepare('INSERT INTO books (test,rec) VALUES (?,?)');
$query->bindValue(1, '35');
$query->bindValue(2, $rollv);
$query->execute();
이렇게하면 원시 바이너리 데이터가 아닌 Base64로 인코딩 된 데이터가 서버로 전송됩니다. – Qualcuno
Base64를 검색하고 변환 할 수 있습니까? 아니면 파일을 왜곡할까요? – SolidCloudinc
@ SolidCloudinc 당신은 할 수 있고 그것은 파일을 왜곡하지 않을 것입니다. 그러나 이로 인해 많은 오버 헤드가 발생한다는 것을 기억하십시오. base64로 변환하는 시간과 메모리 사용량 등을 처리하는 시간이 더 걸립니다. 또한 base64로 인코딩 된 문자열은 ~ 33 % 더 커지므로 더 많은 대역폭을 사용합니다. (추신 : 내 의견에 태그를 기억하십시오!) – Qualcuno