通过FTP传输ASP.net页面

本文关键字:net 页面 ASP 传输 FTP 通过 | 更新日期: 2023-09-27 18:05:45

我是一个开发新手,我有一个问题,我还没有一个解决方案。无论如何,我似乎不知道是否有可能解决这个问题。

我想创建一个asp页面,允许用户从ftp服务器下载整个文件夹。ftp服务器本身与asp站点不在同一台物理服务器上。使问题进一步复杂化的是,我想使用显式或隐式传输,我似乎无法在浏览器中工作。

网页充当客户端和ftp服务器之间的中介,并且意味着尽可能用户友好。如。用户只需要按下下载,它就会自动从FTP服务器下载,而不需要使用已安装的本地客户端。

  1. client -> asp -> ftp server
  2. 客户端<- ftp服务器

我的问题是asp页面没有权限在客户端系统上创建文件。我已经设法连接到ftp并尝试下载文件夹中的所有文件,但文件没有出现在目标文件夹中的客户端上。

我可能只是搜索了错误的术语,但我将感谢您的反馈。

通过FTP传输ASP.net页面

当您说"客户端"时,我认为您指的是asp.net服务器。在这种情况下,你需要检查你的网站的应用程序池是运行在什么用户。然后,您需要确保用户对存储ftp文件的文件夹具有写权限。

用户最可能是网络服务

您的ASP站点将无法直接写入最终用户的系统。试想一下,你想让任何网站直接访问你的文件系统吗?

您可以将文件下载到Web服务器上的临时文件夹中,然后在响应中使用write it来提示用户下载它。

这是一个关于在ASP中下载文件的问题。净

从我们的问题评论讨论来看,看起来您希望为用户提供一个选项来下载您从ftp服务器收集的服务器端文件

//Connect to your file
FileStream sourceFile = new FileStream(Server.MapPath(@"FileName"), FileMode.Open);
float FileSize= sourceFile.Length;
//Write the file content to a byte Array 
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int)sourceFile.Length);
sourceFile.Close();
//Build HTTP Response object
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Length", getContent.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.BinaryWrite(getContent);
Response.Flush();
Response.End();

请看看上面的代码是否有帮助。另外,请查看HTTP响应文件附件讨论