2017-05-04 18 views
0

PDFファイルなど、さまざまなリソースをダウンロードできるページを作成しようとしています。しかし、私は、これらのPDFファイルを、必要に応じてファイルアップロードによって新しいものに置き換えることができるようにしたいと考えています。ダウンロードボタンのコードはここまでです。ファイルアップロードでファイルをアップロードするとき、どうすれば既存のファイルを置き換えることができますか?

protected void btnFocusDownload_Click(object sender, EventArgs e) 
{ 
    Response.ContentType = "Application/pdf"; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=focus.pdf"); 
    Response.TransmitFile(Server.MapPath("~/resources/MumsZone.pdf")); 
    Response.End(); 
} 

ファイルアップロードのコードは別の<form>です。

protected void btnFocusUpload_Click(object sender, EventArgs e) 
{ 
    if (uplFocus.HasFile) 
    { 
     try 
     { 
      if (Path.GetExtension(uplFocus.FileName).Equals(".pdf")) 
      { 
       uplFocus.SaveAs(Server.MapPath("resources/focus.pdf")); 

      } 
     } 
     catch (Exception ex) 
     { 
      Response.Write("<script>alert('Issue uploading file');</script>"); 
     } 
    } 
} 

私は単にそれに新しい名前を与えることによって、フォルダにあったが、それは動作しませんでした古いファイルを置き換えるために取得しようとしていました。どんな助けでも大歓迎です。

+0

「uplFamiliesFirst」とは何ですか? – silkfire

+0

uplFamiliesFirstは、このコードを入力していたときに私が作成したエラーでした。それはuplFocusを読み、ファイルのアップロードです –

答えて

0

FileUpload.SaveAs()メソッドには、保存する場所に同じ名前のファイルが見つかった場合の処理​​の独自のロジックがあります。
ファイルを置き換える代わりに、既存のファイルを上書きしないように、新しいファイル名に接頭辞を付けます。

代わりにbyte[]アレイをファイルに保存することをお勧めします。

ファイルがすでに存在する場合は上書きされます。

if (uplFocus.HasFile) { 
    File.WriteAllBytes(Server.MapPath("resources/focus.pdf"), uplFocus.FileBytes); 
} 
+1

これは今動作します。そんなにシルクファイアありがとうございました。あなたはおそらく私はまだこれについて多くのことを学んでいると言うことができます。 –

+0

@JohnMcCulloughよろしくお願いします。 – silkfire

関連する問題