最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JavaScript實現(xiàn)文件共享型網(wǎng)站

 更新時間:2022年11月07日 16:22:38   作者:海擁  
Any?Share?是一種簡單、輕量、快速的文件共享服務。使用?Javascript?編寫,并搭建在?Firebase?平臺。本文將利用它實現(xiàn)創(chuàng)建文件共享型網(wǎng)站,感興趣的可以了解一下

Any Share 是一種簡單、輕量、快速的文件共享服務。使用 Javascript 編寫,并搭建在 Firebase 平臺。

特色

上傳文件

下載文件

刪除文件

分享文件

查看文件

安全文件共享

說明

Any Share 使用 Firebase 來存儲文件,使用 Firebase 實時數(shù)據(jù)庫來存儲文件的元數(shù)據(jù)。

上傳文件時,它會存儲在 Firebase 中,并為該文件生成一個唯一 ID,此 ID 用于訪問文件。

該文件的元數(shù)據(jù)存儲在 Firebase 實時數(shù)據(jù)庫中。此元數(shù)據(jù)包括文件的 url 和文件的唯一 ID。

共享文件時,共享文件的唯一 ID。此 ID 用于訪問文件。

文件的接收者可以使用文件的唯一 ID 訪問文件。

當接收方使用唯一 ID 接收到文件時,文件會從 Firebase 存儲中下載并顯示給接收方。

接收方收到文件后,會自動從 Firebase 存儲中刪除該文件。

這樣文件就可以安全地共享了。

如何使用

  • 訪問 anyshare。
  • 上傳一個文件。
  • 等待文件上傳。
  • 與接收者共享文件的唯一 ID。
  • 接收方可以使用文件的唯一 ID 訪問文件。
  • 接收方收到文件后,會自動從 Firebase 存儲中刪除該文件。

代碼審查

Firebase 存儲上傳代碼

function uploadFile() {
    if(document.getElementById("file").value != ""){
    var uploadtext = document.getElementById("upload").innerHTML;
  document.getElementById("upload").innerHTML = "Uploading...";
  var file = document.getElementById("file").files[0];
  var storageRef = firebase.storage().ref("images/" + file.name);
  var uploadTask = storageRef.put(file);
  uploadTask.on('state_changed', function (snapshot) {
    var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
    console.log('Upload is ' + progress + '% done');
  }, function (error) {
    console.log(error.message);
    document.getElementById("upload").innerHTML = "Upload Failed";
  }, function () {


    uploadTask.snapshot.ref.getDownloadURL().then(function (downloadURL) {
      console.log('File available at', downloadURL);
      saveMessage(downloadURL);
    });
  });
}
else{
    var uploadtext = document.getElementById("upload").innerHTML;
    document.getElementById("upload").innerHTML = "Please select a file";
    // 2秒后清空
    setTimeout(function(){
        document.getElementById("upload").innerHTML = uploadtext;
    }
    , 2000);
}
}

Firebase 存儲下載代碼

function showfile() {
	var uniqueId = document.getElementById("unique").value;
	if (uniqueId == "") {
		alert("Unique Id is empty\n Please enter a Unique Id");
		return;
	}
	var ref = firebase.database().ref("image");
	var flag = 0;
	ref.on("value", function(snapshot) {
		snapshot.forEach(function(childSnapshot) {
			var childData = childSnapshot.val();
			if (childData.number == uniqueId) {

				flag = 1;
				window.open(childData.url, "_blank");
				// 然后從數(shù)據(jù)庫中刪除圖像
				ref.child(childSnapshot.key).remove();
				// 從存儲中刪除文件
				// 延遲5秒運行
				setTimeout(function() {
					var storageRef = firebase.storage().refFromURL(childData.url);
					storageRef.delete().then(function() {
						ref.child(childSnapshot.key).remove();
						// 文件刪除成功
					}).catch(function(error) {});
				}, 15000);
			}
		});
	});
}

生成的唯一 ID

function createUniquenumber(){
    // 為尚未在數(shù)據(jù)庫字段編號中的每個圖像創(chuàng)建一個唯一的5位數(shù)
    var number = Math.floor(10000 + Math.random() * 90000);
    var ref = firebase.database().ref("image");
    ref.on("value", function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
        var childData = childSnapshot.val();
        if (childData.number == number){
            createUniquenumber();
        }
        });
    });
    return number;
}

在 Firebase 實時數(shù)據(jù)庫中保存文件元數(shù)據(jù)的代碼

function saveMessage(downloadURL) {
    var newMessageRef = messagesRef.push();
    var unique= createUniquenumber();
    // 隱藏接收文件 div
    var x = document.getElementById("downloadiv");
    x.style.display = "none";
    var showUnique = document.getElementById("ShowUniqueID");
    var shU=document.getElementById("showunique");
    shU.value=unique;
    showUnique.style.display = "block";

    newMessageRef.set({
        url: downloadURL,
        number: unique
    });
    document.getElementById("upload").innerHTML = "Upload Successful";
    // 使文件輸入為空
    document.getElementById("file").value = "";

    }

總結

在本教程中,我們解釋了如何創(chuàng)建一個文件共享型的 Web 應用程序。

參考

到此這篇關于基于JavaScript實現(xiàn)文件共享型網(wǎng)站的文章就介紹到這了,更多相關JavaScript文件共享網(wǎng)站內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Web安全之XSS攻擊與防御小結

    Web安全之XSS攻擊與防御小結

    這篇文章主要介紹了Web安全之XSS攻擊與防御小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 微信小程序實現(xiàn)二維碼簽到考勤系統(tǒng)

    微信小程序實現(xiàn)二維碼簽到考勤系統(tǒng)

    這篇文章主要介紹了微信小程序實現(xiàn)二維碼簽到考勤系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 一篇文章弄懂javascript中的執(zhí)行棧與執(zhí)行上下文

    一篇文章弄懂javascript中的執(zhí)行棧與執(zhí)行上下文

    這篇文章主要給大家介紹了關于javascript中執(zhí)行棧與執(zhí)行上下文的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用javascript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • ES6 Promise對象的含義和基本用法分析

    ES6 Promise對象的含義和基本用法分析

    這篇文章主要介紹了ES6 Promise對象的含義和基本用法,結合實例形式分析了Promise的含義、功能、基本用法及相關操作注意事項,需要的朋友可以參考下
    2019-06-06
  • csdn 批量接受好友邀請

    csdn 批量接受好友邀請

    說實話,加好友的太多了,怎么辦,想個批量的辦法吧
    2009-02-02
  • 動態(tài)刷新 dorado樹的js代碼

    動態(tài)刷新 dorado樹的js代碼

    動態(tài)刷新 dorado樹的js代碼
    2009-06-06
  • javascript移動端 電子書 翻頁效果實現(xiàn)代碼

    javascript移動端 電子書 翻頁效果實現(xiàn)代碼

    這篇文章主要介紹了javascript移動端 電子書 翻頁效果實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • javascript 得到文件后綴名的思路及實現(xiàn)

    javascript 得到文件后綴名的思路及實現(xiàn)

    在上傳文件時,常常要對文件的類型即對文件的后綴名進行判斷,用javascript可以很容易的做到這一點。用Javascript解析一個帶絕對路徑的文件名并得到后綴名的方法有很多種,這里列出一種,以供參考。
    2013-07-07
  • 一文快速學會創(chuàng)建uni-app項目并了解pages.json文件

    一文快速學會創(chuàng)建uni-app項目并了解pages.json文件

    這篇文章主要給大家介紹了如何創(chuàng)建uni-app項目并了解pages.json文件的相關資料,pages.json文件用來對uni-app進行全局配置,決定頁面文件的路徑、窗口樣式、原生的導航欄、底部的原生tabbar等,需要的朋友可以參考下
    2023-10-10
  • three.js開發(fā)3d地圖的實現(xiàn)示例

    three.js開發(fā)3d地圖的實現(xiàn)示例

    本文主要介紹了three.js開發(fā)3d地圖的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

疏附县| 神池县| 买车| 浦江县| 五家渠市| 洪雅县| 藁城市| 江西省| 靖宇县| 新营市| 晋中市| 舟曲县| 交口县| 永年县| 康保县| 镇安县| 宾川县| 威远县| 邵阳县| 遂昌县| 盐池县| 沂源县| 昌邑市| 交城县| 满洲里市| 屯昌县| 舟山市| 新建县| 墨江| 钦州市| 敖汉旗| 大理市| 新民市| 筠连县| 博客| 沽源县| SHOW| 阿合奇县| 庆安县| 玛沁县| 黑山县|