Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

.NETによるファイルのアップロード処理

詳細

  • ブラウザからアップロードする場合は、<INPUT type="file">を使用する。
  • これによりwwwブラウザからHTTPの
    マルチパートメッセージボディを使用して
    ファイルをアップロードすることが可能である。
  • サーバ側ではHttpPostedFile?クラスのメソッドを使用して、
    受信したファイル データをファイルに保存する
    (マルチパートメッセージボディは、
    複数ファイルのアップロードに対応している)。

クライアント毎のアップロード処理

ブラウザからアップロード

.NETからアップロード

アップロードの.NET実装は以下の様になる。

protected string UOC_btnMButton1_Click(FxEventArgs fxEventArgs)
{
  HttpPostedFile posted = Request.Files["userfile"];

  if (posted.FileName != "")
  {
    posted.SaveAs(
      "c:\\UploadedFiles\\"
      + System.IO.Path.GetFileName(posted.FileName));
  }
  return "";
}

メモリ不足の問題

ファイルのアップロード時、アップロード中のデータは、
全てASP.NETプロセスのメモリに蓄積される。

ファイルの最大サイズ設定

  • 巨大なファイルがアップロードされる場合は、
    ASP.NETプロセスの使用するメモリ量が膨張し、
    メモリ不足になる可能性があるので注意する(多重度なども影響する)。
  • web.configにアップロード可能な
    ファイルの最大サイズを設定しておくと良い 。

    wwwブラウザはファイルのアップロード時に、
    ファイルサイズをHTTPヘッダのContent-Length属性に付加するので、
    設定値を超えるファイルのアップロード要求をファイル受信前に拒否できる。

    <httpRuntime maxRequestLength="4096" executionTimeout="90"/>

大規模データのアップロード

「WCF のストリーミング転送モード」
を使用してアップロード処理を実装する必要がある 。

参考

ファイルのダウンロード

マイクロソフト系技術情報 Wiki

アップロード・ダウンロード


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-25 (水) 09:50:10 (72d)