PHP, HTML ドラッグアンドドロップの実装

ドラッグアンドドロップの実装

よくファイルのアップロード等で、ドラッグアンドドロップでアップロードできるサイトをみますよね。

 

こういうやつです、って見せたいんですけど、windowsのキャプチャー機能が、フォルダ等を写してくれないのでわかりにくいです、、

 

 

 

一見難しそうですが、実はめちゃくちゃ簡単に実装できるので是非最後まで見ていってください。

 

※サンプルではJavaScriptを使って動きを付けていますが、今回はJavaScriptは使用しないため、サンプルとは若干異なります。

 

 

 

完成形

まずは、実際に作成するものの完成形を見ておきましょう。

 

本記事で紹介するコードは、以下のようなデザインになります。

 

 

さきほどもお伝えしたように、こちらで紹介するコードは、冒頭のサンプルとは異なります。

 

では、次の章から実装コードを見ていきます。

 

 

実装コード

ドラッグアンドドロップ機能は、HTMLとCSSのみで作成しています。

それぞれ順番に確認していきます。

 

 

HTMLファイル

HTMLのコードはこちらになります。

※bodyタグの中だけを紹介します。

 

 

HTMLファイルだけだと、以下のようになります。

 

 

ここからCSSの方で調整していきます。

 

実際のデザインとHTMLタグの対応を簡単に確認しておきましょう。

 

 

 

中央の雲は、FontAwesomeのアイコンを使用しています。

詳しくは、【超簡単】 Font Awesomeの使い方を参考にしてください。

 

 

では、CSSファイルを見ていきます。

 

 

CSSファイル

CSSのコードはこちらになります。

このままだと重要じゃない部分が多いので、ポイントだけピックアップして説明します。

 

 

 

このコードにおいて重要な部分は、32~39行目のここです。

 

 

ここでミソとなる点は、 opacity: 0; の部分です。

 

このように調整することで、「ファイルを選択」という文字を消すことができ画面いっぱいにinputタグを広げることができます

 

 

これだけでは味気無いのですが、背景にそれっぽい画像を挿入することで、より良い感じに仕上がります。

 

 

おまけ

上のコードは単一のファイル用ですが、複数ファイルをアップロードするためには、inputタグを以下のように書き換えます。

 

 

こうすることで、複数のファイルを同時にアップロードすることができます。

 

複数ファイルを指定した場合は、PHPの方でfor文を使って残りの処理をしていきます。

 

参考までに以下のようにfor文を使えばすべてのファイルの処理ができます。

 

 

これでおしまいです。

 

こんな感じで簡単に実装できるので、是非試してみてください。

 

>>【jQuery】 パスワードが見え隠れする機能の実装

>> PHPとMySQLを使った会員登録システムの作り方