【解決方法】ボタンをクリックしたときにFTPサーバーからファイルをダウンロードする方法は?


When i use this code click on asp.Button then all operation correct but file not download. Please help me

私が試したこと:

FtpWebRequest request1 = null;
            request1 = (FtpWebRequest)WebRequest.Create(ftpServerIP + Session["appid"] + "/" + fname);

            //Enter FTP Server credentials.
            request1.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            request1.UsePassive = true;
            request1.UseBinary = true;
            request1.EnableSsl = false;
            request1.Method = WebRequestMethods.Ftp.DownloadFile;
            //Fetch the Response and read it into a MemoryStream object.
            FtpWebResponse response1 = (FtpWebResponse)request1.GetResponse();
            using (MemoryStream stream = new MemoryStream())
            {
                //Download the File.
                response1.GetResponseStream().CopyTo(stream);                
                Response.AddHeader("content-disposition", "attachment;filename=" + fname);
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.BinaryWrite(stream.ToArray());
                Response.End();
            }

解決策 2

private void ダウンロード(文字列ファイル)
{
文字列 FromLocalFile = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings[“FromLocalFile”].ToString());
文字列 ToServerFile = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings[“ToServerFile”].ToString();
文字列 ftpserverIP = System.Configuration.ConfigurationManager.AppSettings[“ftpserverIP”];
文字列ユーザー名 = System.Configuration.ConfigurationManager.AppSettings[“username”];
文字列パスワード = System.Configuration.ConfigurationManager.AppSettings[“password”];
文字列 portno = System.Configuration.ConfigurationManager.AppSettings[“portno”];
文字列 LocalDir = System.Configuration.ConfigurationManager.AppSettings[“LocalDir”].ToString();
試す
{
文字列 uri = ftpserverIP + ToServerFile + “https://www.codeproject.com/” + ファイル;
URI serverUri = 新しい Uri(s);
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
戻る;
}
//FTP Web リクエストが作成されました
FtpWebRequest リクエスト = (FtpWebRequest)WebRequest.Create(ftpserverIP + ToServerFile + “https://www.codeproject.com/” + ファイル);
request.Method = WebRequestMethods.Ftp.DownloadFile;
// FTP ログイン資格情報
request.Credentials = 新しい NetworkCredential(ユーザー名、パスワード);
FtpWebResponse 応答 = (FtpWebResponse)request.GetResponse();
ストリーム responseStream = response.GetResponseStream();
StreamReader リーダー = 新しい StreamReader(responseStream);
Program.CreateLocalDir();// createLocalDir() メソッドの呼び出し
string date = DateTime.Now.ToString(“ddd MM.dd.yyyy”);
string foldername = string.Format(file);
FileStream writeStream = new FileStream(LocalDir + @”\” + Path.Combine(date, foldername), FileMode.Create);
int 長さ = 2048;
バイト[] バッファ = 新しいバイト[Length];
int bytesRead = responseStream.Read(バッファ、0、長さ);
while (bytesRead > 0)
{
writeStream.Write(バッファ、0、bytesRead);
bytesRead = responseStream.Read(バッファ、0、長さ);
}
writeStream.Close();
response.Close();
}
キャッチ (WebException wEx)
{
Console.WriteLine(wEx.Message, “ダウンロード エラー”);
}
キャッチ(例外例)
{
Console.WriteLine(ex.Message, “ダウンロードエラー”);
}
}

解決策 1

fileName = “PDF.pdf”;
FtpWebRequest リクエスト = (FtpWebRequest)WebRequest.Create(new Uri(string.Format(“{0}/{1}/{2}”, ftp_Url, ftp_path_Folder, fileName)));
//FTP サーバーの資格情報を入力します。
request.Credentials = new NetworkCredential(“UserName”, “Password”);
request.UsePassive = true;
request.UseBinary = true;
request.EnableSsl = false;
request.Method = WebRequestMethods.Ftp.DownloadFile;
// Response を取得し、それを MemoryStream オブジェクトに読み込みます。
FtpWebResponse 応答 = (FtpWebResponse)request.GetResponse();
使用 (MemoryStream ストリーム = new MemoryStream())
{
//ファイルをダウンロードします。
response.GetResponseStream().CopyTo(ストリーム);
Response.AddHeader(“content-disposition”, “attachment;filename=” + fileName);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(ストリーム.ToArray());
Response.End();
}

コメント

タイトルとURLをコピーしました