2011-01-25 8 views
4

AJAXyファイルのアップロードを調べるたびに、iframeはいつもどこかで使用されていました。AJAXでiframeやFlashを使用せずにファイルをアップロードすることはできますか?

AJAXを使用し、iframeまたはFlashを使用せずにファイルをアップロードすることはできますか?最近のバージョンのFirefoxとChromeではどうでしょうか?

私は同僚と議論しています。純粋なJavascriptを使ってAJAXyのアップロードを実行することはできないと主張しています。これはAJAXの呼び出しによってファイルの内容を渡すためにユーザーのハードドライブからファイルの内容を読み取ることができないからです。サーバー側のスクリプト。

+0

、(執筆時点で)Internet Explorer用のIFrame /フラッシュへのフォールバックを定め、以下の3つの答え。したがって、私は、AJAXでIFrame/Flashなしでファイルをアップロードするための普遍的な方法はないと主張します。 – Jake

答えて

2

有名なjQuery Uploadify pluginを使用できます。

Uploadifyが があなたの ウェブサイト上で完全にカスタマイズ 複数のファイルアップロードユーティリティを統合するjQueryプラグインです。これは、 Javascript、ActionScript、および任意の サーバーサイド言語の混合を使用して、ページ上のDOM 要素上でインスタンスを動的に作成します( )。

+1

これはフラッシュを使っています。 Flashを使用しないことが要件であるとは言及していませんでした...私はこれを含めるように質問を編集しました。 –

2

私もかかわらず、あなたは、Firefox(3.6以上)上のファイルAPIを使用することができますし、私は、最新のWebKitが同様に(ないように注意してください)、それをサポートして考えるValums File Uploader

+0

これは私の同僚が私に指摘したものです。著者は「このプラグインは、FF3.6 +、Safari4 +、Chromeのプログレスバーで複数のファイルをアップロードするためにXHRを使用し、他のブラウザではiframeベースの隠しファイルに落ちる」と主張しているが、コードを見ると、純粋なjavascript、非iframe、非フラッシュアップロードの出来事の証拠。 –

+0

もう少し見ると、xhr.send(file)と表示されます。したがって、明らかに新しいFileApi機能は、潜在的な悪意のあるクライアントサイドのJavaScriptにファイルのコンテンツを公開することなく、ファイルの内容をサーバー側に送信する処理を行います。 –

+0

私はちょうどそのライブラリのIEのフォールバックと戦っていた - それは "適切な"バージョンが行う進捗報告をしないことを警告する。 –

関連する問題