2017-02-19 80 views
0

我搜索了網頁,看看是否有一種方法可以將文件(照片,視頻,消息)發送給使用應用程序的用戶。我找不到任何明確的例子或解釋如何實現它。使用javascript發送文件給用戶

我不知道該怎麼做。誰能告訴我如何做到這一點?任何幫助將不勝感激。我也許應該提到這個應用程序的最終目標是一個消息應用程序。

+0

你正在尋找某種文件上傳 –

+0

看看[FileSaver.js](https://github.com/eligrey/FileSaver。js /) –

+1

@JijoCleetus是的,我正在尋找上傳某些文件到某些定義的用戶(由發送文件的人定義的)的「收件箱」。 –

回答

0

不知道你的意思是「發送文件」給用戶,但如果你希望他們使用JavaScript來下載一個文件,你可以使用這個優秀的jQuery插件:http://jqueryfiledownload.apphb.com/

當然,也有很多的替代品例如創建一個不可見的iframe,然後將url加載到您希望用戶下載到該iframe的文件中。你可以在這裏閱讀更多關於這個:Download File Using Javascript/jQuery

希望它有幫助!

+0

感謝您的幫助,我會去檢查一下。我發送文件的意思基本上是;假設用戶從他的相機拍攝照片,照片會自動保存到一個文件夾中,以便計算機可以訪問該照片(基本上,照片就是我在問題中稱爲文件的位置,對於消息和視頻也是如此。 )。 –

+0

Javascript無權訪問用戶的本地文件系統。我也不知道任何JavaScript訪問手機的相機。我不完全確定JavaScript會是你想要實現的最好的東西(製作相機/消息傳遞應用程序??) –

+0

@LaurensSwart使用html5,javascript對用戶的本地文件系統進行了沙盒訪問 – niceman

0

首先讓我告訴你,你可以使用康提js sdk,你可以在這裏找到它:https://developer.kandy.io/,我沒有測試它,但它看起來非常有前途,並提供了許多你需要的功能。

如果你想自己做(或者你只是好奇),WebSockets是這裏的主要玩家。

你現在應該知道的Http協議是一個請求 - 響應協議,客戶端向服務器發出請求並且服務器響應。

但有時我們希望服務器與我們可以使用SSE(服務器發送的事件)的客戶端交談,在其他時候我們希望在服務器和客戶端之間創建一個連接,並且我們希望兩者都能夠發送給它並從中接收,這就是WebSockets的作用。

在你的用例中,你可以有兩種策略:點對點或集中式,當用戶X想要發送一些東西給用戶時,它必須首先發送給服務器,服務器將其發送給用戶Y.

爲此,您需要websockets,您在用戶X和服務器之間創建一個連接,在服務器和用戶Y之間創建另一個連接,將用戶X的文件發送到連接,然後服務器通過另一個連接到用戶Y,用戶Y可以將新文件發送到服務器,以便服務器將其發送給用戶X,等等。因此,您可以得出結論:Websockets具有服務器部分和客戶端部分,通常我們啓動的websockets服務器不同於爲應用程序提供服務的Web服務器(兩者可以在同一臺服務器計算機上或不同的計算機上),如果您不想帶上自己的服務器,你可以看看推送器:https://pusher.com/

Pusher是一種雲服務,爲包括JavaScript在內的多種語言提供sdks,以防您想擁有自己的服務器我無法談論您的問題的服務器端部分,因爲您的問題是一個JavaScript問題,適用於客戶端部分查看socket.io,這提供了客戶端部分以及節點服務器部分,但是如果您不想爲服務器使用節點,則可以使用客戶端部分。

如果你想建立點對點連接,你可以看看simple-peer

+0

感謝您清理我的問題的整個消息部分。你的回答非常有幫助。 –