2017-09-18 11 views
-1

私は特定の名前のファイルをダウンロードできるボタンクリックでこのコードを使用しています。asp.netでファイルをダウンロードするC#

しかし、ユーザーがファイルをアップロードしたときに、Idプルーフの詳細ファイルのような詳細情報が必要になります。

ユーザーadminを確認するには、彼のID証明の詳細を確認してください。 アップロードしてデータベースに保存したファイルをダウンロードします。

ファイルのタイプや拡張子は任意です。ユーザーがファイルをアップロードするとき

private void Button1_click(object sender, System.EventArgs e) 
{ 
    string filename="C:\myuploads\invoice.pdf"; 
    Response.ContentType = "Application/pdf"; 
    Response.AppendHeader("Content-Disposition", "attachment;" + filename +); 
    Response.TransmitFile(Server.MapPath(filename)); 
    Response.End(); 
} 
+1

は、あなたが実行可能ファイル(.exeファイル、の.msi ...)また、あなたが任意のファイルを可能にアップロード機能が欲しいポジティブです?それは助けてくれるはずです:https://stackoverflow.com/questions/6733136/open-any-file-from-asp-net –

+0

https://stackoverflow.com/questions/6783921/which-mime-type-to-use -for-a-binary-file-that-specific-to-my-programは正確には複製ではありません。答えはあなたが望む任意のファイルに使うことのできる一般的なコンテンツタイプである 'application/octet-stream' 。 – Chris

+1

ここで正確に何を求めていますか?それは本当に不明です。ファイルのダウンロードのどの部分が分かりませんか? – Liam

答えて

0

感謝を。特定のユーザーIDのデータベースからファイルをダウンロードするMy LinkBut​​tonが正常に機能しました。

実際には私のダウンロードリンクは更新パネルにありました。このためには "トリガー"が必要です。そして、私のリンクがGridViewにあったので、私はトリガーでLink Button Idを渡しました。

更新パネルでGridViewを使用するたびに、特定のユーザーIDのデータベースからファイルをダウンロードするLinkBut​​tonがあります。私たちは、**のGridView同上ないテンプレートフィールド内のLinkBut​​ton IDを渡すべきである。**

<asp:UpdatePanel ID="upd" runat="server"> 
     <ContentTemplate> 
    <asp:GridView ID="grd_UserList" runat="server" CssClass="table" 
     DataKeyNames="Uid" AutoGenerateColumns="false" AllowPaging="false"> 
    <asp:TemplateField HeaderText="Task Name"> 
      <ItemTemplate> 
    <asp:LinkButton Id="LinkDownload" runat="Server" CommandArgument='<%# Eval("Attachment") %>' > 
      </ItemTemplate> 
     </asp:TemplateField> 

     </asp:GridView> 
    </ContentTemplate> 
     <Triggers> 
      <asp:PostBackTrigger ControlID="grd_UserList" /> 
     </Triggers> 
    </asp:UpdatePanel> 
0

は、あなたが投稿ファイルのContentTypeプロパティを使用することができるはずです。あなたのDBにその値保存

string fileType = uploadFile.PostedFile.ContentType 

を使用してコンテンツタイプを取得し、ファイルがアップロードされている場合

<asp:FileUpload ID="uploadFile" runat="server" /> 

、との値としてそれを使用する:これはあなたのようなファイルアップロードコントロールを使用と仮定しています後でダウンロードするときは、既存のコードにReponse.ContentTypeと入力します。

+0

はい、私はファイルアップロードコントロールを使用しています。このコントロールと一緒にアップロードされたファイルをダウンロードするダウンロードリンクボタンもあります。 –

+0

これはファイルのコンテンツタイプをキャプチャして使用する方法を示しています後でファイルをダウンロードして提供すると、ファイルが適切にダウンロードされます。それはあなたの質問に答えますか、それとも他の何かを意味しましたか? – ADyson

+0

@MohiniGalhotraと問題は何ですか?すでにアップロードコントロールがあり、ブラウザにファイルを送信するコードを投稿しています。質問は何ですか?何が問題ですか**? –

0

私はこれがあなたが何をしているのかと思います。

private void DownloadFile(string file) 
{ 
    var fi = new FileInfo(file); 
    Response.Clear(); 
    Response.ContentType = "application/octet-stream"; 
    Response.AddHeader("Content-Disposition", "attachment; filename="+ fi.Name); 
    Response.WriteFile(file); 
    Response.End(); 
} 

だから、ちょうどこのようにそれを呼び出す:私の質問に答えるための

string myfile = @"c:\path\To\Files\myFile.pdf"; //this wouldn't be a static string in your code 
DownloadFile(myfile); 
+0

Yate ...助けてくれてありがとうございます。変数を受け取りました 文字列myfile = @ "c:\ path \ To \ Files \ myFile。pdf "; DownloadFile(myfile); これはmyfile.pdfというファイル名でファイルを取得しますが、私の場合は、拡張子が任意のファイルがあります。 –

+0

はい、そのコードがダウンロードされます'myfile'を必要なものに設定してソートされていれば' string myfile = @ "c:\ path \ To \ Files \ myFile.xyz" 'にすることができます。 。 –

関連する問題