2009-06-09 13 views

答えて

4

あなたはまた、フィルタリングするためにJavaScriptの代替を行うことができますサーバー側(おそらくこれもやりたいと思うかもしれませんが)は、クライアントがアップロードを待っている間にクライアントが間違ったタイプであることを知るために時間を費やさないようにします。

http://javascript.internet.com/forms/upload-filter.html

だから、基本的に、あなたはちょうどそれがアップロードされたファイルの拡張子をオフに解析し、そのない権利タイプの場合、彼らに警告を与える提出のJavaScript関数を実行します。

また、document.forms [0] .submit();を使用することもできます。 ASP.NETは実際には単一のフォームしか使用しません)。

1

アップロードされたファイルをサーバーサイドのファイル名を確認します。

FileUpload1.PostedFile.FileName 

Javaまたはクライアント上で同様のものを使用する場合を除き、多くの彼らが送られている前に、あなたがアップロードされたファイルをフィルタリングするために行うことができますが、実際にそこではありませんサーバー。

2
 string fileName = fuFiles.FileName; 

     if(fileName.Contains(".dot")) 
     { 
      fuFiles.SaveAs(Server.MapPath("~/Files/" + fileName)); 
     } 
2

標準のブラウザのファイルセレクタを使用してクライアント/サイドファイル拡張子をフィルタ処理することはできません。 これを行うには、フラッシュアップローダーシステムに基づいて、SWFUploadなどの混合タイプのアップロードを使用する必要があります(これは本当に素晴らしいtechinqueです。

あなたは標準モードで行うことができる唯一のことは、すでに掲載ファイルをフィルタリングすることである、と私はSystem.IO.Pathネームスペースユーティリティを使用することをお勧め:

if (Path.GetExtension(upFile.FileName).ToUpper().CompareTo(".DOT") == 0) 
{ 
    /* do what you want with file here */ 
} 
1

ここでは、私が使用しているファイルの種類をフィルタリングする小さな方法があります。 fuLogoという名前のファイルアップロードコントロール。ファイルが既に存在するかどうかを確認するためにディレクトリを通じ

if (fuLogo.HasFile) 
     { 
      int counter = 0; 
      string[] fileBreak = fuLogo.FileName.Split(new char[] { '.' }); 
      logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString()+ "." + fileBreak[1]); 
      if (fileBreak[1].ToUpper() == "GIF" || fileBreak[1].ToUpper() == "PNG") 
      { 
       while (System.IO.File.Exists(logo)) 
       { 
        counter++; 
        logo = Server.MapPath("../Images/Logos/" + fileBreak[0] + counter.ToString() + "." + fileBreak[1]); 
       } 
      } 
      else 
      { 
       cvValidation.ErrorMessage = "This site does not support any other image format than .Png or .Gif . Please save your image in one of these file formats then try again."; 
       cvValidation.IsValid = false; 
      } 
      fuLogo.SaveAs(logo); 
     } 

基本的に、私は最初に反復します。ファイルが存在すれば(例えばpicture0.gif)、カウンターが増加します(picture1.gifへ)。写真の名前が同じであれば、異なるユーザーがお互いの写真を上書きすることを防ぐことができます。

+1

ファイル名がmyFile.1.pngの場合は、代わりにPath.GetExtension(theFileName)を使用してください。 –

関連する問題