2014-05-11 73 views
-2

我正在使用Chrome擴展程序,其中在options.html頁面中用戶應該能夠上傳音頻文件。看起來我不允許在編寫Chrome擴展時使用PHP,所以我想知道的是如何用JQuery保存音頻文件。是否可以使用JQuery保存文件輸入?

我有什麼:

HTML

<form > 
    <input type="file" id="upload" name="snd" /> 
    <input type="submit" id="submit" value="Upload" /> 
</form> 

JS

$('#submit').on('click', (function(e) { 
    upload = document.getElementById("upload").files[0]; 
    return false; 
})) 

這將提取的文件,但現在我不知道如何保存它。請幫忙!

謝謝!

+0

如果您認爲PHP是可能的,你的閱讀做了很多。 –

+0

是否要將文件保存在客戶端的PC上的擴展文件夾中?或者你真的想把它保存在某個網站的服務器上?如果是後者,你真的有很多的閱讀 – Banana

+0

將它保存在擴展文件夾中就足夠了,因爲這更像是一個概念證明類型的項目,需要在我的筆記本電腦上工作。謝謝。 – Ekaterina

回答

1

Chrome只允許在沙箱環境中訪問文件系統。請看下面的例子爲準備有關訪問它:

document.querySelector('#upload').onchange = function(e) { 
var files = this.files; 

window.requestFileSystem(window.TEMPORARY, 1024*1024, function(fs) { 
// Duplicate each file the user selected to the app's fs. 
for (var i = 0, file; file = files[i]; ++i) { 

    // Capture current iteration's file in local scope for the getFile() callback. 
    (function(f) { 
    fs.root.getFile(f.name, {create: true, exclusive: true}, function(fileEntry) { 
     fileEntry.createWriter(function(fileWriter) { 
     fileWriter.write(f); // Note: write() can take a File or Blob object. 
     }, errorHandler); 
    }, errorHandler); 
    })(file); 

} 
}, errorHandler); 
}; 

下面是進一步信息的好資源:

http://www.html5rocks.com/en/tutorials/file/filesystem/

+0

作爲附加評論,可能需要將''unlimitedStorage''添加到擴展的權限集中,以便能夠存儲任意大小的文件。 – Xan

+0

另外,**注意文章中的大紅色警告**! – Xan

相關問題