我对开发很新,我遇到了一个问题,我没有找到解决方案。无论如何,我似乎无法找到是否可能解决..
我想创建一个asp页面,允许用户从ftp服务器下载整个文件夹。 ftp服务器本身与asp站点不在同一物理服务器上。更复杂的问题是我想使用显式或隐式传输,而这似乎无法在浏览器中使用。
网页充当客户端和ftp服务器之间的中介,并且尽可能地用户友好。例如。用户只需按下下载即可自动从ftp服务器下载而无需使用已安装的本地客户端。
我的问题是asp页面没有在客户端系统上创建文件的权限。我已设法连接到ftp并尝试下载文件夹中的所有文件,但文件未出现在目标文件夹中的客户端上。
我可能只是在寻找错误的条款,但我希望得到任何反馈。
答案 0 :(得分:0)
当你说“客户端”时我假设你指的是asp.net服务器。在这种情况下,您需要检查您的网站的应用程序池在哪个用户下运行。然后,您需要确保用户对存储ftp文件的文件夹具有写入权限。
用户很可能是网络服务。
答案 1 :(得分:0)
您的ASP网站无法直接写入最终用户的系统。试想一下,您希望任何网站都可以直接访问您的文件系统吗?
您可以将文件下载到Web服务器上的临时文件夹中,然后在响应中使用它来提示用户下载它。
Here is a SO question regarding downloading files in ASP.NET
答案 2 :(得分:0)
从我们的问题评论讨论中,看起来您希望为用户提供从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 Response file Attachment Discussion