[英]which type file_get_content() Return?
我有簡單的代碼,我在其中獲取文件的內容,並希望將其保存在HTML5中的瀏覽器本地Db中,這里的代碼
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var db = openDatabase('mydb', '1.0', 'Test DB', 100 * 1024 * 1024);
var msg;
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log, content LONGBLOB not null)');
<?php
$sql1 = "INSERT INTO LOGS(id, log,content)
VALUES('5','abc','" . mysql_escape_string(file_get_contents("43.mp3")) . "')";
?>
var v= "<?php echo $sql1;?>";
console.log(v);
tx.executeSql(v);
msg = '<p>Log message created and row inserted.</p>';
document.querySelector('#status').innerHTML = msg;
});
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) {
var len = results.rows.length, i;
msg = "<p>Found rows: " + len + "</p>";
document.querySelector('#status').innerHTML += msg;
for (i = 0; i < len; i++){
msg = "<p><b>" + results.rows.item(i).log + "</b></p>";
document.querySelector('#status').innerHTML += msg;
}
}, null);
});
</script>
</head>
<body>
<div id="status" name="status">No Data </div>
</body>
</html>
它沒有插入記錄,我認為file_get_content()返回內容列表,但沒有正確的字符串格式console.log(v); 指出非法的synex
您正在使用mysql_escape_string()
來轉義Javascript數據庫API。 對於Javascript作為字符串調用,這種轉義並不安全。
相反,我認為您應該在PHP中使用base64_encode
來編碼mp3二進制文件。 例如:
<?php
$sql1 = "INSERT INTO LOGS(id, log,content)
VALUES('5','abc','" .
base64_encode(file_get_contents("43.mp3")) . "')";
?>
應將base64格式的字符串保存為Javascript,包括Database API和console.log(v)
。 然后,您應該使用音頻API的readAsDataURL()加載mp3數據並進行播放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.