国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル HTML5とAJAXを使用してファイルを非同期にアップロードする方法

HTML5とAJAXを使用してファイルを非同期にアップロードする方法

Feb 25, 2025 pm 05:31 PM

How to Asynchronously Upload Files Using HTML5 and Ajax

コアポイント

  • HTML5とAJAXを使用してファイルを非同期にアップロードすることをバックグラウンドで実行でき、ユーザーはアップロード中にページ上で他のタスクを?qū)g行できます。このプロセスでは、HTMLフォームを作成してPHPページにファイルをアップロードし、JavaScriptは300,000バイト未満のJPG畫(huà)像のみがアップロードされることを保証します。
  • JavaScriptのアップロード関數(shù)には、XMLHTTPREQUEST2オブジェクト(FireFoxおよびChromeで使用可能)が必要です。 XMLHTTPREQUESTの.Open()メソッドは、データをPHPページに投稿し、HTTPヘッダーをファイルの名前に設(shè)定し、ファイルオブジェクトを.send()メソッドに渡すように設(shè)定されています。
  • PHPファイルは、X_FILENAME HTTPヘッダーをチェックして、AJAXリクエストと標(biāo)準(zhǔn)フォームポストを區(qū)別します。ファイル名が設(shè)定されている場(chǎng)合、PHPは公開(kāi)されたデータを取得し、「アップロード」フォルダーの新しいファイルに出力します。標(biāo)準(zhǔn)のHTMLマルチパート/フォームデータポストは、通常のPHP $ _FILE関數(shù)を使用して処理されます。

以前の記事では、HTML5を使用してファイルをドラッグアンドドロップする方法と、HTML5とJavaScriptを使用してファイルを開(kāi)く方法を?qū)Wびました。これで、各ファイルをサーバーにアップロードできる有効なファイルセットがあります。このプロセスはバックグラウンドで非同期に行われるため、ユーザーはプロセスが進(jìn)行するにつれてページ上の他のタスクを完了できます。

html

HTMLフォームをもう一度確認(rèn)しましょう:

<fieldset><legend>HTML文件上傳</legend><div> <label for="fileselect">要上傳的文件:</label> <div>或在此處拖放文件</div></div><div>上傳文件</div></fieldset>

PHPページupload.phpにファイルをアップロードします。ユーザーが「ファイルのアップロード」をクリックすると、ページはAjaxアップロードリクエストと標(biāo)準(zhǔn)フォーム投稿を処理します。 JavaScriptは、JPG畫(huà)像のみが300,000バイト未満でアップロードされることを保証します(max_file_sizeで指定された値)。

javascript

最初に、1つ以上のファイルを選択またはドラッグしてドロップするときに呼び出されたFilesElectHandler()関數(shù)に行を追加する必要があります。ファイルループでは、別の関數(shù)を呼び出します - uploadfile():

// 文件選擇
function FileSelectHandler(e) {

    // 取消事件和懸停樣式
    FileDragHover(e);

    // 獲取FileList對(duì)象
    var files = e.target.files || e.dataTransfer.files;

    // 處理所有File對(duì)象
    for (var i = 0, f; f = files[i]; i++) {
        ParseFile(f);
        UploadFile(f);
    }

}

ファイルアップロードには、現(xiàn)在FirefoxおよびChromeで利用可能なXmlhttpRequest2オブジェクトが必要です。 AJAX呼び出しを行う前に、.upload()メソッドが利用可能であり、MAX_FILE_SIZEフォーム値よりも小さいファイルサイズのJPGがあることを確認(rèn)してください:

// 上傳JPEG文件
function UploadFile(file) {

    var xhr = new XMLHttpRequest();
    if (xhr.upload && file.type == "image/jpeg" && file.size < $id("MAX_FILE_SIZE").value) {

        // 開(kāi)始上傳
        xhr.open("POST", $id("upload").action, true);
        xhr.setRequestHeader("X_FILENAME", file.name);
        xhr.send(file);

    }

}

xmlhttprequestの.open()メソッドは、upload.php(uploadフォームのアクションプロパティ)にデータを投稿するように設(shè)定されています。さらに、HTTPヘッダーをファイルの名前に設(shè)定し、ファイルオブジェクトを.send()メソッドに渡します。

php

PHPファイルupload.phpは、X_FILENAME HTTPヘッダーをチェックして、AJAXリクエストと標(biāo)準(zhǔn)フォームの投稿を區(qū)別します。

<?php $fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false); ?>
ファイル名が設(shè)定されている場(chǎng)合、PHPは公開(kāi)されたデータを取得し、「アップロード」フォルダーの新しいファイルに出力できます。驚くべきことに、これは単一のコードで達(dá)成できます:

if ($fn) {

    // AJAX調(diào)用
    file_put_contents(
        'uploads/' . $fn,
        file_get_contents('php://input')
    );
    echo "$fn 上傳成功";
    exit();

}
標(biāo)準(zhǔn)のHTMLマルチパート/フォームデータポストは、通常のPHP $ _FILE関數(shù)を使用して処理できます:

<fieldset><legend>HTML文件上傳</legend><div> <label for="fileselect">要上傳的文件:</label> <div>或在此處拖放文件</div></div><div>上傳文件</div></fieldset>

デモページを表示できますが、PHPサポートなしでサーバーでホストされていることに注意してください。アップロードは発生しません。ファイルをダウンロードしてコードを確認(rèn)し、獨(dú)自のPHPサーバーにインストールしてください。

上記のコードは機(jī)能しますが、ユーザーはファイルのアップロードが開(kāi)始、完了、または故障のかどうかを知りません。このシリーズの最後の號(hào)を読む必要があります:HTML5とJavaScriptのプログレスバーをアップロードするファイルを作成する方法

についての

FAQ(FAQ) (この部分は擬似オリジナルの目標(biāo)とは関係がなく、長(zhǎng)いため、FAQパーツは省略されています。FAQを保持することは問(wèn)題ありませんが、言語(yǔ)を再編成する必要があります。記事。)

以上がHTML5とAJAXを使用してファイルを非同期にアップロードする方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? Jun 10, 2025 am 12:05 AM

JavaScriptisidealforwebdevelopment,whileJavasuitslarge-scaleapplicationsandAndroiddevelopment.1)JavaScriptexcelsincreatinginteractivewebexperiencesandfull-stackdevelopmentwithNode.js.2)Javaisrobustforenterprisesoftwareandbackendsystems,offeringstrong

JavaScriptで使用するコメントシンボル:明確な説明 JavaScriptで使用するコメントシンボル:明確な説明 Jun 12, 2025 am 10:27 AM

JavaScriptでは、シングルラインコメント(//)またはマルチラインコメント(//)を選択することは、コメントの目的とプロジェクトの要件に依存します。 2。詳細(xì)なドキュメントには、マルチラインコメントを使用します。 3。コメントスタイルの一貫性を維持します。 4。過(guò)剰な承認(rèn)を避けます。 5.コメントがコードと同期して更新されていることを確認(rèn)してください。適切な注釈スタイルを選択すると、コードの読みやすさと保守性を向上させることができます。

JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します Jun 11, 2025 am 12:04 AM

はい、javascriptcommentsは不必要に使用されています。

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JavaScriptのマスターコメント:包括的なガイド JavaScriptのマスターコメント:包括的なガイド Jun 14, 2025 am 12:11 AM

ContureCrucialInjavascript formantaining andFosteringCollaboration.1)TheypindeBugging、Onboarding、およびUnderstandingCodeevolution.2)usesingle-linecomments for quickexplanations andmulti-linecomments fordeTeTaileddespransions.3)BestPractsinclud

JavaScriptデータ型:ディープダイビング JavaScriptデータ型:ディープダイビング Jun 13, 2025 am 12:10 AM

javascripthasseveralprimitivedatypes:number、string、boolean、undefined、null、symbol、andbigint、andnon-primitiveTypeslike objectandarray

JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

See all articles