目前我用FtpWebResponse实现的从ftp下载文件到本地,只能在程序中将保存路径写死,
想问问大家能不能让用户选择保存路径呢?
谢谢各位咯!
想问问大家能不能让用户选择保存路径呢?
谢谢各位咯!
解决方案 »
- 网站被挂马了怎么办
- 错误提示:“未将对象引用设置到对象的实例”, 附上代码,该如何修改
- ESQL datediff 无法解析为有效的类型或函数
- JAVA能在ASP.NET中用吗?J2EE是什么,它能在用ASP.NET的时候能用吧,有关吗?JAVA和J2EE哪个对网站开来说哪个用的多一些,如果学的话,哪个先学
- Server.MapPath在哪一个名称空间?
- 今天,一位老程序被炒了,心里有些凉。
- 如何把WEBCONFIG里的连接字符串作成DLL文件,及怎么使用. 用于加密的.
- 请教问题?
- 想用OracleCommand向Oracle里传图片,
- 如何将检索出的数据放在同一窗口的不同帧中
- 点线结合的统计图
- 如何替换掉后台编辑器
string ftpPath = @"ftp:192.168.1.1/abc.txt";
Uri uri = new Uri(ftpPath);
FtpWebRequest listRequest = (FtpWebRequest)WebRequest.Create(uri);
string ftpUser = FtpUser;
string ftpPassWord = FtpPass;
listRequest.Method = WebRequestMethods.Ftp.DownloadFile;
listRequest.Credentials = new NetworkCredential(ftpUser, ftpPassWord);
listRequest.KeepAlive = true;
//获取一个请求响应对象
FtpWebResponse response = (FtpWebResponse)listRequest.GetResponse();
//获取请求的响应流
Stream responseStream = null;
responseStream = response.GetResponseStream();
try
{
MemoryStream mem = new MemoryStream(1024 * 5000);
byte[] buffer = new byte[1024];
int bytesRead = 0;
int TotalByteRead = 0;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
TotalByteRead += bytesRead;
if (bytesRead == 0)
break;
mem.Write(buffer, 0, bytesRead);
}
if (mem.Length > 0)
{
mem.ToArray(); HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
//Response.ContentType = "application/octet-stream";
//设置下载
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=abc.txt"));
Response.AddHeader("Content-Length", mem.ToArray().Length.ToString());
HttpContext.Current.Response.BinaryWrite(mem.ToArray());
mem.Close();
mem.Dispose();
return;
}
}
catch (Exception ep)
{
ep.ToString();
throw ep;
}不过感觉这个要是大文件可能会给用户带来长时间等待才出现下载提示.