ホームページ >ウェブフロントエンド >jsチュートリアル >HTML5 添付ファイルのドラッグ アンド ドロップ アップロード ドロップ & google.gears 実装コード_JavaScript スキル
Tencent Weibo も最近、ドラッグ アンド ドロップによるアップロードを実装しました。実はとてもシンプルなのです。
サーバーのサポートがないため、この記事ではアップロードのデモを行うことができません。ダウンロード例
ドラッグ アンド ドロップ アップロードに必要なサポート
1 : ブラウザはドロップ イベントをサポートする必要があります。 (ドラッグ イベントに応じてファイル オブジェクトを取得します);
2: XMLHttpRequest オブジェクトには sendAsBinary メソッドがあります (データの送信に使用されます)。
上記の 2 つの条件は、現時点では Firefox によってのみ実現されます。
Chrome の最初の項目は標準を満たしており、2 番目の項目は google.gears を使用してシミュレートできます。
つまり、ドラッグ アンド ドロップ アップロードを実装できるブラウザには、firefox3.6 と chrome7 が含まれます。
ドラッグ&ドロップアップロードの実装方法
1: ドロップイベントをバインドします。
2: ファイルオブジェクトを取得します。
3: オブジェクトのバイナリデータを取得します。
4: ポストリクエストを送信するためのデータをシミュレートします。
XMLhttprequest と google.gears は大きく異なります。
そのため、私は常にそれをカプセル化します (UpLoadFileXHR)。上記のステップ 2、3、4 をカプセル化しました。
UpLoadFileXHR をインスタンス化している限り、ファイルをドラッグ アンド ドロップしてアップロードできます。クリックしてダウンロード
例
1: UpLoadFileXHR.js ファイルを参照します
新しい UpLoadFileXHR(オブジェクト) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
var upLoadFile = new UpLoadFileXHR({url:'',name:''}) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URL | 文字列 | アップロードアドレス | 必須 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
名前 | 文字列 | バックグラウンドで取得したデータの名前 | 必須 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
属性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フォーマット | 正規表現 | (/jpg|pen|jpeg|gif/) などのファイル タイプをフィルタリングします。設定されていない場合、すべてのファイルが通過します。 | 必要ありません | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
デバッグ | ブール値 | デバッグが有効かどうか | デフォルトは false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
オートコンプリート属性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XHR | オブジェクト | インスタンス化後、ブラウザに従ってプロパティが自動的に入力されます。ここには、現在ファイルをアップロードするために使用される xhr オブジェクトが保存されます。 | 自動 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
サポート | オブジェクト | データの送信に現在使用されているもの
|
自動 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メソッド | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
開始 | 関数 | はドロップ イベントにバインドされたメソッドであり、イベントのデフォルト e パラメータを受け取ります。これを start | を呼び出す現在のオブジェクトにポイントしてください。|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
停止防止 | 関数 | イベントのバブリングとイベントのデフォルト アクションをキャンセルします | false を返す | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
チェックファイル | 関数 | ファイル属性 (形式、サイズなど) を確認します | ブール値を返す | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
イベント | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
エラー発生 | 関数 | エラー | デフォルトパラメータ e (エラーオブジェクト) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
オンフォーマットエラー | 関数 | 形式が正しくありません(形式属性に基づいて判断されます) | デフォルトのパラメータ ファイル (現在のファイル オブジェクト) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onloadstart | 関数 | アップロードを開始 | デフォルトのパラメータ ファイル (google.gears の下) または e (XMLhttprequest の下) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
進行中 | 関数 | アップロードの進行状況 | イベントのデフォルトパラメータ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
準備完了状態変更中 | 関数 | アップロードステータス | イベントのデフォルトパラメータ |