0

こんにちは、ダウンロード関数を作成する必要があるので、私のWebサイトのユーザーがボタンをクリックすると、ファイルがPCにダウンロードされます。

これをリンクとして使用すると、ファイルがダウンロードされます。

http://formvalue.co.za/download/" + fileName + ".xlsx"

しかし、その後は何もできないので、ダウンロード後にサーバーからファイルを削除できるように、関数でこれが必要です。

私はMVCを使用しているので、関数はJqueryまたはC#で使用できます。

誰か助けてもらえますか、何か情報が必要な場合はお問い合わせください、よろしくお願いします。

4

1 に答える 1

1

サーバーにポスト バックし、次のメソッドを呼び出す LinkBut​​ton を単純に使用できますか?

internal static void ContentToBrowser(string contentType, string filename, string content)
        // Send to browser
        var response = HttpContext.Current.Response;
        response.Clear();
        response.ContentType = contentType;
        response.AddHeader("Content-Disposition", 
                    String.Format("attachment; filename=\"{0}\"", filename));
        var contentLength = response.ContentEncoding.GetByteCount(content);
        response.AddHeader("Content-Length", contentLength.ToString());
        response.Write(content);
        response.End();
}

これにより、サーバーに保存することを心配することなく、必要なコンテンツをクライアントに直接書き戻すことができます。例えば

protected void LinkButtonClick(object sender, EventArgs e)
{
     string filename = @"c:\filepath\blah.xlsx";
     string content = File.ReadAllText(filename);
     ContentToBrowser("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "downloaded-blah.xlsx", content);
     File.Delete(filename);
}

ただし、後でファイルを削除する動機については疑問を呈する必要があります. クライアントによって正常にダウンロードされ、保存されたことをどのように確認できますか?

于 2012-10-24T09:20:56.267 に答える