- PR -

[ASP.NET] フォーム内にドラッグ&ドロップされた値を取得する方法

1
投稿者投稿内容
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2004-06-16 12:01
お世話になっています。

ASP.NETでファイルのアップロードコンテンツを作成しています。
通常アップロードするファイルを参照ボタン等で、テキストエリアにそのファイルパスを明記し、それを取得してアップロードを行うのが一般的かと思います。
それをなんとか、クライアントのエクスプローラーやデスクトップよりファイルをブラウザにドラッグし、それをアップロードできるようになればと考えています。

方法として、フォーム内に任意のコントロールを配置し、そのコントロールに対してだラッグ&ドロップを行われた場合の値を取得し、アップロードを行う。といったことを考えています。
ただ、そのコントロールにおいて、ドラッグ&ドロップされたファイルの値を取得できるかどうかの調査で行き詰っています。
MSDNのライブラリで調べた結果、Scriptによるondragstartイベントというのがあるみたいで、それを応用することで実現できそうな気もするのですが、如何せん英文が苦手なもので、完璧な理解もできず、サンプルを動かしてみてもしっくりきません。
以下がその参考ページです。

http://msdn.microsoft.com/library/default.asp?url=/workshop/Author/dhtml/reference/events/ondragstart.asp


どなたか、情報をお持ちの方がいればご教授ください。
よろしくお願いします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-06-16 12:36
引用:

方法として、フォーム内に任意のコントロールを配置し、そのコントロールに対してだラッグ&ドロップを行われた場合の値を取得し、アップロードを行う。といったことを考えています。



クライアントサイドスクリプトで、ブラウザにドラッグ&ドロップされたファイルのファイル名の取得くらいまではできたような気がします。

が、その後でたぶん手詰まりになると思います。

input type=file は、スクリプティングによる操作を受け付けないので、せっかく取得したファイル名を input type=file に設定することが出来ません。

Webサーバに対するファイル送信を、input type=file を使わずにクライアントサイドスクリプトだけで実現するのはかなり難しいです。

Windows で、IE で、COM コンポーネントを使っても良ければ、実現可能ですが、そこまで制約が緩められるなら、いっそ ActiveX コントロールを作ってしまった方が簡単で効果的です。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2004-06-16 13:19
>渋木宏明(ひどり)様

迅速なお答えありがとうございます。

なるほど、やはり簡単に実装はできないとのことですね・・・。
アクティブXに関しては知識が乏しいのですが、なんとかやってみようと思います。
1

スキルアップ/キャリアアップ(JOB@IT)