DBにAttachmentsテーブルがあり、varbinary形式のファイル名とfiledataがあります。 C#の最後では、このデータを文字列に変換し、MIMETypeに応じて、ダウンロード可能な.xls/.pdfファイルを作成する必要があります。これを行う最善の方法は何ですか?これを行うにはActionLinkを使用できますか?私はMVCを使用するのが初めてで、このための最良のアプローチのアイデアはありません。任意の提案をいただければ幸いです。varbinaryデータから添付ファイルを作成してダウンロード可能にする
答えて
文字列に変換するのをやめ、正しいMIMEタイプを返すことを心配します。
は、この質問をチェックアウト:
あなただけのMIMEタイプを設定するには、コンテンツタイプを決定する必要があります。
これを行うにはActionLinkを使用できますか?
はい。 C#の終わりには
、私は文字列にこのデータを変換し、 MIMEタイプに応じて、ダウンロード可能な.XLS/.pdfファイルを作成する必要があります。
レスポンスヘッダーにContent-Disposition(http://msdn.microsoft.com/en-us/library/ms526989(v=exchg.10).aspx)を追加します。
のContent-処分:添付ファイルを含むものとして指定された添付ファイル
ボディパーツは、ユーザーのアクションが表示される必要があります。通常はメッセージから分割されます。これらは通常、後でアクセスするためのファイルとして保存されます。このヘッダーのオプションのパラメーターは、ファイル名、作成日、変更日、読み取り日時、およびサイズです。
コンテンツディスポジション:メッセージを開いたときに、インライン
インラインコンテンツがユーザーに表示されます。インラインボディパーツは、マルチパートコンテンツタイプに適用されるルールに従って、メッセージに表示される順序で表示されます。マルチパート本体部分にインラインヘッダがある場合、インライン指定はマルチパート全体に適用され、サブパートには適用されません。 https://stackoverflow.com/a/9610656/1241400
ほとんどのブラウザが開き、他のファイルタイプattachment
を使用するためにできるようあなたは* .PDFためinline
を使用することができます。
は、コードを確認してください。
私は前に同じ種類のことをしなければなりませんでした。 FileContentResultを返し、Urlmon.dllを使用して、ControllerメソッドのFileメソッドhttp://msdn.microsoft.com/en-us/library/dd460208.aspxに渡すMIMEタイプを判別し、DBから取得したbyte []データとUrlmonから返されたMIMEタイプを返します。 dll、http://pinvoke.net/default.aspx/urlmon.FindMimeFromData、pinvoke。
私はそれが私のためのDBにも格納されているので、私はMIMEタイプを知っています。ありがとう! – neuDev33
これはJavaScriptからどのように実行できるのか分かりませんか?私はこれを組み込もうとしてきましたが、ファイル名の数に応じてファイル名へのリンクを動的に作成する必要があります。リンクが作成されたら、クリックイベントでこれを行う必要があります。 – neuDev33