検索
ホームページウェブフロントエンドhtmlチュートリアルファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

ファイルをアップロードするにはどうすればよいですか?次の記事では、HTML ファイルをアップロードするための 10 のヒントと、サポートされている HTML ファイルのアップロード方法 10 を紹介します。

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

ファイルのアップロード機能はプロジェクトにおいて頻繁に必要になる機能と言えます。ソーシャル メディアへの写真のアップロードから求人サイトへの履歴書の投稿まで、ファイルのアップロードはあらゆるところで行われています。この記事では、HTML ファイルのアップロード サポートの 10 の使用法について説明します。お役に立てば幸いです。

1. 単一ファイルのアップロード

Web アプリケーションでファイル アップロード機能を使用するには、input タイプを file として指定します。

<input type="file" id="file-uploader">

input filte 1 つ以上のファイルをアップロードするためのボタンを提供します。デフォルトでは、オペレーティング システムのネイティブ ファイル ブラウザを使用して 1 つのファイルをアップロードします。アップロードが成功すると、File API により、単純な JS コードを使用して File オブジェクトを読み取ることができるようになります。 File オブジェクトを読み取るには、change イベントをリッスンする必要があります。

まず、id:

const fileUploader = document.getElementById(&#39;file-uploader&#39;);

によってファイル アップロードのインスタンスを取得します。次に、アップロードの完了時に読み取る change イベント リスナーを追加します。ファイル オブジェクトを取得するには、event.target.files プロパティからアップロードされたファイル情報を取得します。

fileUploader.addEventListener(&#39;change&#39;, (event) => {
  const files = event.target.files;
  console.log(&#39;files&#39;, files);
});

コンソールで出力結果を観察します。ここでは、FileList に注目します。 配列と、アップロードされたファイルに関するすべてのメタデータ情報を含む File オブジェクト。

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

これを見て少し興奮して、少し遊んでみたい場合は、CodePen で遊んでください。アドレス: https://codepen.io /atapas/pen /rNLOyRm

2. 複数のファイルのアップロード

複数のファイルをアップロードしたい場合は、タグに multiple 属性を追加する必要があります。 :

<input type="file" id="file-uploader" multiple />

これで、複数のファイルをアップロードできるようになります。前の例に基づいて、アップロードする複数のファイルを選択した後、コンソールの変更を観察します:

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

もしこれを見てみんなが少し興奮したら、楽しみたいならCodePenで遊んでみてください。アドレス: https://codepen.io/atapas/pen/MWeamYp

3. ファイルのメタデータを理解する

ファイルをアップロードするたびに、File オブジェクトには、ファイル名サイズなどのメタデータ情報が含まれます。 、最終更新時間、タイプなど。この情報は、さらなる検証や特別な処理に役立ちます。

const fileUploader = document.getElementById(&#39;file-uploader&#39;);

// 听更 change 件并读取元数据
fileUploader.addEventListener('change', (event) => {
  // 获取文件列表数组
  const files = event.target.files;

  // 遍历并获取元数据
  for (const file of files) {
    const name = file.name;
    const type = file.type ? file.type: 'NA';
    const size = file.size;
    const lastModified = file.lastModified;
    console.log({ file, name, type, size, lastModified });
  }
});

次は、単一ファイルのアップロードの出力結果です。

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

#これを見て少し興奮し、次のことを確認したい場合は、ちょっとしたトリックを実行してください。CodePen を使用できます。楽しんでください。アドレス: https://codepen.io/atapas/pen/gOMaRJv

4. accept 属性を理解する

accept 属性を使用して、アップロードするファイルの種類を制限できます。ファイル形式 .jpg.png# のみをアップロードする場合は、 ##、次のようにすることができます:

<input type="file" id="file-uploader" accept=".jpg, .png" multiple>

上記のコードでは、サフィックス

.jpg および .png を持つファイルのみを選択できます。

これを見て少し興奮して、少し遊んでみたい場合は、CodePen で遊んでください。アドレス: https://codepen.io/atapas/pen/OJXymRP

5. ファイルの内容を管理する

ファイルのアップロードに成功した後にファイルの内容を表示しますが、アップロード後にプレビューが表示されないのはユーザーの観点からすると奇妙であり、配慮がありません。

FileReader オブジェクトを使用して、ファイルをバイナリ文字列に変換できます。次に、ファイルが正常にアップロードされたときにバイナリ文字列を取得するための load イベント リスナーを追加します。

// FileReader 实例
const reader = new FileReader();

fileUploader.addEventListener(&#39;change&#39;, (event) => {
  const files = event.target.files;
  const file = files[0];

  reader.readAsDataURL(file);

  reader.addEventListener(&#39;load&#39;, (event) => {
    const img = document.createElement(&#39;img&#39;);
    imageGrid.appendChild(img);
    img.src = event.target.result;
    img.alt = file.name;
  });
});

これを見て少し興奮して、少し遊んでみたい場合は、CodePen で遊んでください。アドレス: https://codepen.io/atapas/pen/zYBvdjZ

6. ファイル サイズの確認

ユーザーがアップロードした画像が大きすぎる場合は、サーバーに負担をかけないように、画像のサイズを制限する必要があります。以下は、ユーザーが

1M より小さい画像をアップロードできるようにするためのものです。 1M より大きい場合、アップロードは失敗します。

fileUploader.addEventListener(&#39;change&#39;, (event) => {
  // Read the file size
  const file = event.target.files[0];
  const size = file.size;

  let msg = &#39;&#39;;

 // 检查文件大小是否大于1MB
  if (size > 1024 * 1024) {
      msg = `<span style="color:red;">The allowed file size is 1MB. The file you are trying to upload is of ${returnFileSize(size)}</span>`;
  } else {
      msg = `<span style="color:green;"> A ${returnFileSize(size)} file has been uploaded successfully. </span>`;
  }
  feedback.innerHTML = msg;
});

これを見て少し興奮して、少し遊んでみたい場合は、CodePen で遊んでください。アドレス: https://codepen.io/atapas/pen/pobjMKv

7. ファイルのアップロードの進行状況を表示する

ユーザー エクスペリエンスを向上させるには、ファイルのアップロードの進行状況をユーザーに知らせることです。以前は、読み取りと読み込みに

FileReader とイベントを使用していました。ファイル。

const reader = new FileReader();

FileReader現在のアップロードの進行状況を示す progress イベントもあります。HTML5 の progress タグを使用して、ファイルのアップロード、スケジュール。

reader.addEventListener(&#39;progress&#39;, (event) => {
  if (event.loaded && event.total) {
    // 计算完成百分比
    const percent = (event.loaded / event.total) * 100;
    // 将值绑定到 `progress`标签
    progress.value = percent;
  }
});

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

如果大家看到这里,有点激动,想手贱一下,可以 CodePen 玩玩,地址:https://codepen.io/atapas/pen/eYzpwYj

8. 怎么上传目录上传?

我们可以上传整个目录吗?嗯,这是可能的,但有一些限制。有一个叫做webkitdirectory的非标准属性(目前只有谷歌浏览器还有Microsoft Edge支持按照文件夹进行上传),它允许我们上传整个目录。

目前只有谷歌浏览器还有Microsoft Edge支持按照文件夹进行上传,具体可以看下百度云盘的网页版的上传按钮,在火狐下就支持按照文件进行上传,而在谷歌和Edge下,就会给用户提供一个下拉,让用户选择是根据文件进行上传还是根据文件夹进行上传。
<input type="file" id="file-uploader" webkitdirectory />

用户必须需要确认才能上传目录

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

用户单击“上传”按钮后,就会进行上传。 这里要注意的重要一点。 FileList数组将以平面结构的形式包含有关上载目录中所有文件的信息。 对于每个File对象,webkitRelativePath属性表示目录路径。

例如,上传一个主目录及其下的其他文件夹和文件:

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

现在,File 对象将将webkitRelativePath填充为:

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

如果大家看到这里,有点激动,想手贱一下,可以 CodePen 玩玩,地址:https://codepen.io/atapas/pen/dyXYRKp

9. 拖拽上传

不支持文件上传的拖拽就有点 low 了,不是吗?我们来看看如何通过几个简单的步骤实现这一点。

首先,创建一个拖放区域和一个可选的区域来显示上传的文件内容。

<div id="container">
  <h1 id="Drag-nbsp-nbsp-Drop-nbsp-an-nbsp-Image">Drag & Drop an Image</h1>
  <div id="drop-zone">
    DROP HERE
  </div>

  <div id="content">
    Your image to appear here..
  </div>

</div>

通过它们各自的ID获取dropzonecontent 区域。

 const dropZone = document.getElementById(&#39;drop-zone&#39;);
 const content = document.getElementById(&#39;content&#39;);

添加一个dragover 事件处理程序,以显示将要复制的内容的效果:

dropZone.addEventListener(&#39;dragover&#39;, event => {
  event.stopPropagation();
  event.preventDefault();
  event.dataTransfer.dropEffect = &#39;copy&#39;;
});

ファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒント

接下来,我们需要一个drop事件监听器来处理。

dropZone.addEventListener(&#39;drop&#39;, event => {
  // Get the files
  const files = event.dataTransfer.files;

});

如果大家看到这里,有点激动,想手贱一下,可以 CodePen 玩玩,地址:https://codepen.io/atapas/pen/ExyVoXN

10. 使用objectURL处理文件

有一个特殊的方法叫做URL.createobjecturl(),用于从文件中创建唯一的URL。还可以使用URL.revokeObjectURL()方法来释放它。

URL.revokeObjectURL() 静态方法用来释放一个之前已经存在的、通过调用 URL.createObjectURL() 创建的 URL 对象。当你结束使用某个 URL 对象之后,应该通过调用这个方法来让浏览器知道不用在内存中继续保留对这个文件的引用了。
fileUploader.addEventListener(&#39;change&#39;, (event) => {
  const files = event.target.files;
  const file = files[0];
  
  const img = document.createElement(&#39;img&#39;);
  imageGrid.appendChild(img);
  img.src = URL.createObjectURL(file);
  img.alt = file.name;
});

如果大家看到这里,有点激动,想手贱一下,可以 CodePen 玩玩,地址:https://codepen.io/atapas/pen/BazzaoN

总结

无论何时,如果你还想学习本文涉及的一些知识,你可以在这里尝试。

英文原文地址:https://dev.to/atapas/10-useful-file-upload-tips-for-web-developers-2d1d

作者: Tapas Adhikary

译者:前端小智

更多编程相关知识,请访问:编程入门!!

以上がファイルをアップロードするにはどうすればよいですか? HTML ファイルのアップロードを共有するための 10 のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール