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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

2回答

284閲覧

ドラッグ&ドロップでファイルをアップロードしたい

spipinc.u

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2024/04/02 00:54

編集2024/04/13 20:51

実現したいこと

https://koheik.hatenablog.com/entry/2016/07/08/152936
このようにドラッグ&ドロップでファイルアップロードを実現させたい

発生している問題・分からないこと

bootstrap3で実現させたことはあるがbootstrap5では初めて行う

該当のソースコード

<div id="drag-drop-area"> <div class="drag-drop-inside"> <p class="drag-drop-info">ここにファイルをドロップ</p> <p>または</p> <input type="file" value="ファイルを選択" name="image"> <p class="drag-drop-buttons"><input id="fileInput" type="file" value="ファイルを選択" name="image"></p> <input type="value" value="送信"> </div> </div> <script> if (!isset($_FILES['image']['error']) || !is_int($_FILES['image']['error'])){ echo "ファイルアップロードエラー"; } else { $file_name = $_FILES['image']['name']; $extension = pathinfo($file_name, PATHINFO_EXTENSION); //拡張子取得 $tmp_path = $_FILES['image']['tmp_name']; $file_dir_path = "upload/"; $uniq_name = date("YmdHis").md5(uniqid(microtime(),1)).session_id() . "." . $extension; if (is_uploaded_file($tmp_path)) { if(move_uploaded_file( $tmp_path, $file_dir_path . $uniq_name)) { chmod($file_dir_path . $uniq_name, 0644); } else { echo "Error:アップロードできませんでした。"; } } } </script>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

なにもかわらない。これでできるかもわからない
コンソールを見るとエラーがあるみたい
それで出来なかった様子
プログラムはよくわからず原因がつかめないので別の参考サイトをみて実現

補足

こちらの参考サイトがわかりやすい
https://mo2nabe.com/input-file-design/

結局これで実現
https://blog.kimizuka.org/entry/2020/08/11/080000

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

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

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

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

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

Lhankor_Mhy

2024/04/02 01:03

参考にされたページにも書かれていますが、JavaScriptが必要になりますので、お試しください。
m.ts10806

2024/04/02 01:19 編集

> bootstrap3で実現させたことはあるが 手順は同じです。参考記事のコードもBootstrapは無関係に組まれているように見受けられます。 送る部分はクライアントの仕事で、アップロード自体の処理はサーバの仕事。 サーバ側は変わりません。 クライアント側もあくまでレイアウトだけでは? jQueryの仕様有無は関係あると思うけど、参考記事ではjQuery使われてないみたいだし、 現在のコードだけではそもそもBootstrap3で出来てたというのが怪しいです。
m.ts10806

2024/04/02 08:10

本当に何も分からないのでしたら、 回答がついてもそれが解決に繋がるものか判断できないのではと思います。 自身の都合の良いコードを書いてくれる人はいないし、 作業依頼をする場でもないので、 自身が理解できるように努めるか、全部業者に丸投げするか どっちかになります。
guest

回答2

0

現在のメジャーブラウザでは <input type=file> がファイルのドロップに対応しています。見た目を気にしなければ何もしなくてもよいでしょう。
<input type=file> 以外の要素でドロップを受け付けたいなら、参考サイトの最後のコードを <script> タグ内に書けば実現できると思います。

基礎的な知識が足りてないように感じます。入門書などを読んで体系的な知識を得るのがおすすめです。

投稿2024/04/02 01:00

編集2024/04/02 01:26
int32_t

総合スコア20909

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

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

0

こんな感じで

javascript

1<style> 2.droppable{ 3 border:1px solid; 4 position:relative; 5 height:200px; 6} 7.droparea{ 8 position:absolute; 9 top:0; 10 width:100%; 11 height:100%;; 12 opacity:0; 13} 14</style> 15<form method="post" action="upload.php" enctype="multipart/form-data"> 16<div class="droppable"> 17<div>ドロップして</div> 18<input type="file" class="droparea" name="userfile" onchange="this.form.submit()"> 19</div> 20</form>

投稿2024/04/02 03:37

yambejp

総合スコア114876

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

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

spipinc.u

2024/04/02 05:14

回答ありがとうございます。試してをみましたが解決できませんでした。 (試した結果の詳細を記載してください) この場合どの辺りに原因がありそうでしょうか? スタイルを当ててドラッグドロップしてみましたがファイルが選択されません
yambejp

2024/04/02 05:46

何がどう詰まっているかわかりません。 わたしのソースで試しましたか? ドロップ領域にファイルを落とすとupload.phpにファイルが飛びますよね? 想定とどこがどう違うのか明示ください
yambejp

2024/04/02 07:38

そうですか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問