Asp.Netにおけるアップロードファイルの各基本操作について
9647 ワード
一般的なB/Sモードで企業レベルのアーキテクチャにファイルをアップロードするのは一般的な業務操作である.はい.NET 1.1バージョンは、対応するクライアントHTMLバージョンのみのInputである.NET2.0バージョンでは、サーバ側のFileUploadコントロールが追加されました.
実はこのコントロールを設計する時に保証するために考えています.NET安全機構デフォルト設定はファイルアップロードのサイズが2 Mです.もちろんシステムのWebを修正することでConfigプロファイルは4 Mに達する.相対的にFileuploadは両刃の剣だ.使用時に長所を伸ばし短所を避けることが重要である.
開発者は、デフォルトのファイルサイズの上限が4 MBであるのは、当時の設計者が霊光を放ったからではなく、潜在的なDOS攻撃の危険を避けるためであることを理解しなければならない.攻撃者が1つ以上の大きなファイルをコミットした場合、サーバは重荷に耐えられないことが多い.ユーザーがアップロードしたファイルが4 MBより大きい場合、「Maximum request length exceeded.」异常情报もちろんこれらはAspにかかわる.Netプラットフォームの下で大きいファイルのアップロードの問題は次の節として討論して実現する.本章では主にAspを利用することを実現する.Netの中のFileUpload制御のいくつかの基本的な操作.
最近VS 2010 Beta 2バージョンをインストールしました.NET FrameWork 4.0.試してみる以下の項目の符号化はいずれもこの環境で実行する.
(A):簡単ファイルアップロード操作ページコード:
バックグラウンドButton時間操作コード:
A:クライアントがアップロードするファイルの種類を制限する.作成したものしかアップロードできません.JPG/.Jpeg/.chm 3種類のファイルクライアント認証モード:
ファイル型サーバー側認証モードのアップロード:
実はこのコントロールを設計する時に保証するために考えています.NET安全機構デフォルト設定はファイルアップロードのサイズが2 Mです.もちろんシステムのWebを修正することでConfigプロファイルは4 Mに達する.相対的にFileuploadは両刃の剣だ.使用時に長所を伸ばし短所を避けることが重要である.
開発者は、デフォルトのファイルサイズの上限が4 MBであるのは、当時の設計者が霊光を放ったからではなく、潜在的なDOS攻撃の危険を避けるためであることを理解しなければならない.攻撃者が1つ以上の大きなファイルをコミットした場合、サーバは重荷に耐えられないことが多い.ユーザーがアップロードしたファイルが4 MBより大きい場合、「Maximum request length exceeded.」异常情报もちろんこれらはAspにかかわる.Netプラットフォームの下で大きいファイルのアップロードの問題は次の節として討論して実現する.本章では主にAspを利用することを実現する.Netの中のFileUpload制御のいくつかの基本的な操作.
最近VS 2010 Beta 2バージョンをインストールしました.NET FrameWork 4.0.試してみる以下の項目の符号化はいずれもこの環境で実行する.
(A):簡単ファイルアップロード操作ページコード:
- --
- <asp:FileUpload ID="FileUpload5" runat="server" Width="475px"></asp:FileUpload>
- <asp:Button ID="TestFileType" runat="server" Text=" - "
- onclick="TestFileType_Click" OnClientClick="CheckFileType()" ></asp:Button>
バックグラウンドButton時間操作コード:
- // -BasicOperatorDemo( ) -
- //Author:chenkai Date:2009 11 10 14:22:36
- protected void bt_upload_Click(object sender, EventArgs e)
- {
- try {
- if (FileUpload1.PostedFile.FileName == "")
- {
- this.lb_info.Text = " !";
- }
- else
- {
- string filepath = FileUpload1.PostedFile.FileName.ToString();
- string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
-
- string serverpath = HttpContext.Current.Server.MapPath("Images/") + filename;
-
- //
- if (File.Exists(serverpath))
- {
- FileUpload1.SaveAs(serverpath);
- this.lb_info.Text = " !";
- }
- else
- {
- //
- File.Create(serverpath);
- }
-
- }
- }
- catch (Exception se)
- {
- this.lb_info.Text = " ! :" + se.ToString();
- }
- }
A:クライアントがアップロードするファイルの種類を制限する.作成したものしかアップロードできません.JPG/.Jpeg/.chm 3種類のファイルクライアント認証モード:
- <Script language="JavaScript" Type="JS/Text">
- // JS Button onClintClick
- function CheckFileType() {
- //
- var str = document.getElementById("FileUpload5").value;
- alert(str);
- var pos = str.lastIndexOf(".");
- var lastname = str.substring(pos,str.length)
-
- if (lastname.toLowerCase()!=".jpg" && lastname.toLowerCase()!=".gif")
- {
- alert(" "+lastname+", .jpg,.gif ");
- return false;
- }
- else
- {
- return true;
- }
- }
- </Script>
ファイル型サーバー側認証モードのアップロード:
- /// <summary>
- ///
- /// Author:chenkai Date:2009 11 11 10:44:26
- /// </summary>
- public bool CheckClintFileType(FileUpload getfile)
- {
- //
- System.IO.FileStream getstream=new FileStream(getfile.FileName,FileMode.Open,FileAccess.Read);
- System.IO.BinaryReader getreader = new BinaryReader(getstream);
-
- string fileclass = string.Empty;
- byte buffer;
-
- try
- {
- //
- buffer = getreader.ReadByte();
- fileclass = buffer.ToString();
- //