2011-10-26 30 views
1

私は非常に簡単な要件を持っています。画像ファイルを含むフォルダがあります。画像を選択して上書きするために同じ既存の画像名で保存するためのアップロードフィールドが1つしかないフォームがあります。私はエラーを取得していますFileupload saveasメソッドは上書きされません

protected void ChangeLogo(object sender, EventArgs e) 
    { 
     if (!ImageUpload.HasFile) 
     { 
      ShowPopup("Logo Upload Canceled", "Please upload the image for the logo.", "stop"); 
     }    
     else //save the image 
     { 
      string logoPath = Server.MapPath("~/images/home/"); 
      string filename = "logo.png"; 

      ImageUpload.SaveAs(logoPath + filename); 
     } 
    } 

:パスへ アクセス「C:\のinetpub \ wwwrootの\サイト\画像\ホーム\のlogo.png」のフォルダ上のが、もし完全なアクセス制御がありますにもかかわらず 拒否されます私はそれが動作する別の名前でそれを保存した、それは上書きを拒否し、私は上書きする必要があります。私は最初にイメージを削除して保存することを考えましたが、これは愚かです。なぜ上書きできないのですか?事前

答えて

3

ナイーブ溶液中

ありがとう:

If(File.Exists(logoPath + filename)) 
    File.Delete(logoPath + filename); 
ImageUpload.SaveAs(logoPath + filename); 
+1

FileUpload'は 'FileMode.Create'を使用し'ているので、私の予感はこれが動作し、それが既存のファイルのパーミッションの問題だということではないだろうということです。 –

+0

はい、常に削除して、解放するファイルハンドルを数えることはできません。 File.IO.MoveFileとCopy、Deleteの場合も同様です。これは基本的なWin32のものです。 –

+1

はいKirk、上書きするイメージが読み取り専用であることが判明しました:S これはチェックを外した後に機能しています。 ありがとうございました – Yasmine

関連する問題