2013-06-29 26 views
0

我試圖插入的數據是一個blob或文件 這是一個學校項目,演講者說現在插入到數據庫中。如何插入JavaScript數據到MySQL數據庫?

這就是我現在所擁有的

function stop() { 
    cancelAnimationFrame(rafId); 
    endTime = Date.now(); 
    $('#stop-me').disabled = true; 
    document.title = ORIGINAL_DOC_TITLE; 

    toggleActivateRecordButton(); 

    console.log('frames captured: ' + frames.length + ' => ' + 
       ((endTime - startTime)/1000) + 's video'); 

    embedVideoPreview(); 
}; 

function embedVideoPreview(opt_url) { 
    var url = opt_url || null; 
    var video = $('#video-preview video') || null; 
    var downloadLink = $('#video-preview a[download]') || null; 

    if (!video) { 
    video = document.createElement('video'); 
    video.autoplay = true; 
    video.controls = true; 
    video.loop = true; 
    //video.style.position = 'absolute'; 
    //video.style.top = '70px'; 
    //video.style.left = '10px'; 
    video.style.width = canvas.width + 'px'; 
    video.style.height = canvas.height + 'px'; 
    $('#video-preview').appendChild(video); 

    downloadLink = document.createElement('a'); 
    downloadLink.download = 'capture.webm'; 
    downloadLink.textContent = '[ download video ]'; 
    downloadLink.title = 'Download your .webm video'; 
    var p = document.createElement('p'); 
    p.appendChild(downloadLink); 

    $('#video-preview').appendChild(p); 

    } else { 
    window.URL.revokeObjectURL(video.src); 
    } 

    if (!url) { 
    var webmBlob = Whammy.fromImageArray(frames, 1000/60); 
    url = window.URL.createObjectURL(webmBlob); 
    } 

    video.src = url; 
    downloadLink.href = url; 

而且我這是如何將其插入到數據庫中的同一頁我也是不肯定在哪裏還創建了視頻團塊。

<?php 
    require("connect.php"); 
    $namey = video; 
    $up = mysql_query("INSERT INTO video VALUES ($namey)"); 
    ?> 
+0

你是如何獲得javascript數據回服務器? AJAX?或者這是你的問題? – SnareChops

+0

我不知道這是否是一個真正的問題..但是,我是否正確讀取了您在爲學校存儲電影的SQL?然後在網上寫一個關於它的問題。這一代有趣的青年。 – Pogrindis

+0

我同意,視頻數據不應該存儲在SQL數據庫中。更好的方法是將文件上傳到系統中的文件夾,然後將URL保存到數據庫中的文件中,然後您可以在您的'

回答

0

好了,說你有一個用戶輸入上傳的視頻...

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="VideoToUpload" /> 
    <input type="submit" value="Upload Video" /> 
</form> 

然後你的新upload.php你將要處理和保存文件

$allowedExts = array("mp4", "mov"); 
$extension = end(explode(".", $_FILES["VideoToUpload"]["name"])); 
if (($_FILES["VideoToUpload"]["type"] == "video/mp4") || ($_FILES["VideoToUpload"]["type"] == "video/quicktime")): 
    if($_FILES["VideoToUpload"]["error"] > 0): 
     echo "Error: " . $_Files["VideoToUpload"]["error"]; 
    else: 
     move_uploaded_file($_FILES["VideoToUpload"]["tmp_name"], dirname(__FILE__) . "/FolderWhereIWantMyVideoSaved/" . $_FILES["VideoToUpload"]["name"]); 
    endif; 
endif; 
$VideoURL = "http://domain/and/path/to/FolderWhereIWantMyVideoSaved/" . $_FILES["VideoToUpload"]; 
$mysqli = new mysqli('ip.of.data.base', 'DatabaseName', 'Password', 'Username');  
$stmt = $mysqli->prepare("INSERT INTO Videos (Name, Type, URL) VALUES (?,?,?)") or die ($mysqli->error); 
$stmt->bind_param('sss', $_FILES["VideoToUpload"]["name"],$_FILES["VideoToUpload"]["type"], $VideoURL); 
$stmt->execute() or die ($mysqli->error); 
$stmt->close(); 
$mysqli->close(); 

現在文件保存在服務器上,並且該文件的URL位於數據庫中。因此,要顯示視頻,你會做的是。

$mysqli = new mysqli('ip.of.data.base', 'DatabaseName', 'Password', 'Username');  
$stmt = $mysqli->prepare("SELECT Name, Type, URL FROM Videos WHERE ID=?") or die ($mysqli->error); 
$stmt->execute() or die($mysqli->error); 
$stmt->bind_result($Name, $Type, $URL); 
$stmt->store_result(); 
$stmt->fetch(); 
... 
<video width="320" height="240" controls> 
    <source src="<?= $URL ?>" type="<?= $Type ?>"> 
    Your browser does not support the video tag. 
</video> 
... 
$stmt->close(); 
$mysqli->close();