0

以下のコードを使用してサーバーからクライアント マシンにファイルをダウンロードしていますが、ファイルを保存すると、フル パス名の後に拡張子 (例:Images/24/12/green.png) を付けて保存されますが、ファイル名 (green.png) のみを保存したいです。 png) クライアント マシンで、どのように行うことができますか

string imagePath = String.Format("~/Images/{0}/{1}", item.Value,item.Text);
                try
                {

                    System.Net.WebClient req = new System.Net.WebClient();
                    HttpResponse response = HttpContext.Current.Response;
                    response.Clear();
                    response.ClearContent();
                    response.ClearHeaders();
                    response.Buffer = true;
                    response.AddHeader("Content-Disposition","attachment;filename=\""+ imagePath + "\"");
                    //byte[] data = req.DownloadData(imagePath);
                    //response.BinaryWrite(data);
                    response.TransmitFile(imagePath);
                    response.End();
                }
                catch(Exception ex)
                {

                }
4

1 に答える 1

4

Content-Dispositionヘッダーのパス全体ではなく、イメージ名のみを使用します。

string fileName = Path.GetFileName(imagePath);
response.AddHeader("Content-Disposition",
                   "attachment;filename=\""+ fileName + "\"");

ファイル名をファイルとして指定し、サーバー側のパスを指定しました。

于 2013-01-01T10:43:27.183 に答える