有很多使用html5讀取本地文件的例子,但通過從文件列表中選擇,我的問題是我想手動創建文件對象,想想我有與鏈接如何使用文件路徑創建/初始化文件對象html5
file:///G:/Users/txt.txt
我想在瀏覽器中打開一個文件,
我認爲它有文件f=new File('file:///G:/Users/txt.txt');
我的問題是,如何創建/使用文件路徑初始化文件對象? !
有很多使用html5讀取本地文件的例子,但通過從文件列表中選擇,我的問題是我想手動創建文件對象,想想我有與鏈接如何使用文件路徑創建/初始化文件對象html5
file:///G:/Users/txt.txt
我想在瀏覽器中打開一個文件,
我認爲它有文件f=new File('file:///G:/Users/txt.txt');
我的問題是,如何創建/使用文件路徑初始化文件對象? !
沒有用戶的許可,確實沒有辦法創建文件。需要按下按鈕或其他東西。您需要創建一個數據:uri才能保存。您可以使用網絡搜索或檢查http://en.wikipedia.org/wiki/Data_URI_scheme(不完整的來源,但可以顯示可能的內容)找到更多信息。這取決於手機和操作系統的限制。數據URI在使用IE時受到限制。
當它被觸發下載時,它會保存到指定的默認位置或用戶。您可能還想查看供應商/操作系統特定的API調用,可以按照您的描述進行操作。但在實際允許訪問之前可能需要驗證權限。
自從File繼承blob接口以來,我使用了下面的解決方法。
var getFileBlob = function (url, cb) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = "blob";
xhr.addEventListener('load', function() {
cb(xhr.response);
});
xhr.send();
};
var blobToFile = function (blob, name) {
blob.lastModifiedDate = new Date();
blob.name = name;
return blob;
};
var getFileObject = function(filePathOrUrl, cb) {
getFileBlob(filePathOrUrl, function (blob) {
cb(blobToFile(blob, 'test.jpg'));
});
};
getFileObject('img/test.jpg', function (fileObject) {
console.log(fileObject);
});
我必須使用XMLHttpRequest,即使是本地文件路徑? – 2016-01-30 06:27:57
這是否適用於所有瀏覽器? – MichelH 2016-08-28 02:25:32
這是否也適用於Android,在iOS上運行良好,但android似乎不喜歡它....? – Stradosphere 2016-09-26 17:54:41
如果由於文件系統差異(UNIX vs. Win協議等)和安全性而無法實現這一點,我不會感到驚訝。我當然不希望我的瀏覽器在我不知道的情況下覆蓋一些我的文件。 :) – 2011-05-09 07:02:06
使用html5開發移動應用程序,試圖將一些數據保存到SDCard並再次檢索 – Yahia 2011-05-09 07:04:41
我認爲您可能更容易依賴localStorage。請參閱http://dev.w3.org/html5/webstorage/。 – 2011-05-09 08:00:21