簡體   English   中英

file_get_content()返回哪種類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM