質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

1255閲覧

google driveなどのinputがないのに drag dropできている理由

dossy

総合スコア109

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2019/08/18 03:05

編集2019/08/18 06:28

イメージ説明
google driveや他のサイトでもそうなんですが、
下のfilesの欄に、drag dropするだけでdbに保存される仕様の仕組みを知りたいです。

自分の中では、formで送るときにはinput要素を使用しなければならないという認識なのですが、
どうもこのdriveでは div要素に丸々dragできてしまう仕様です。
検証ツールで探しても、inputタグのようなものは見つからず。

どのようにして、dbに保存(formで送れる)のかがわかりません。どういう技術を使っているんだろう??

追記:

jsのapiを使って、dropを実装しているところまではわかりました。が、
dropする先がinputでないといけないような気がするのですがどうなんでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

自分の中では、formで送るときにはinput要素を使用しなければならないという認識なのですが、

どうもこのdriveでは div要素に丸々dragできてしまう仕様です。

HTML ドラッグ&ドロップ APIを使ってるだけでは?


追記

dropする先がinputでないといけないような気がするのですがどうなんでしょうか??

シンプルに間違ってます。
ドロップできればファイルの情報は読めるんでXMLHttpRequest等でサーバー側のAPI叩いてファイルの内容送れます。
ドロップのイベントハンドラでAPIを呼び出すだけです。

投稿2019/08/18 03:08

編集2019/08/18 06:49
gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dossy

2019/08/18 09:09

XMLHttpRequest等でサーバー側のAPI叩いてファイルの内容送れます。 これをもう少し詳しく教えていただけると・・・。
gentaro

2019/08/18 09:30

この辺の話です。 https://developer.mozilla.org/ja/docs/Web/API/File 「File オブジェクトは一般的に <input> 要素を使用してユーザがファイルを選択した結果として返された FileList オブジェクトや、ドラッグアンドドロップ操作の DataTransfer オブジェクト、 HTMLCanvasElement の mozGetAsFile() API から情報を取得します」 https://developer.mozilla.org/ja/docs/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Sending_binary_data 「XMLHttpRequest の send メソッドが拡張され、 ArrayBuffer, Blob, または File オブジェクトを受け付ける事でバイナリデータの送信が容易になりました. 続くサンプルはその場で作ったテキストファイルを POST メソッドで "file" をサーバーに送信します。このサンプルはプレインテキストを使っていますが、代わりにデータがバイナリファイルだとイメージする事も出来ます。」
dossy

2019/08/22 07:43 編集

XMLHttpRequest等でサーバー側のAPI叩いてファイルの内容送れます。 このあたりをもうすこし自分で調べてみたいと思います。 ありがとうございました!!
guest

0

HTML5 には File APIがあり、JavaScriptを使って実装されています。

「JavaScript ファイル ドロップ」といったキーワードで実装方法を紹介したサイトが多数見つかります。

投稿2019/08/18 03:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dossy

2019/08/18 06:32

drag dropはjsでやってるんだなぁと思ったのですが、dbにそれでどうやって保存しているのかが謎なんです
退会済みユーザー

退会済みユーザー

2019/08/18 06:35

ajaxで登録できます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問