На моем веб-сайте я перечислил файл папки ftp, когда пользователь нажимает кнопку загрузки, я вызываю приведенный ниже код и загружаю файл на свой диск c. Однако я получаю сообщение об ошибке Доступ к пути "C: \ myvideo.flv" запрещен.
Код работает на сервере, и его необходимо сохранить на локальном диске ПК.
ASP.NET не авторизован для доступа к запрошенному ресурсу. Рассмотрите возможность предоставления прав доступа к ресурсу для удостоверения запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET в IIS 5 или Network Service в IIS 6 и IIS 7 и настроенный идентификатор пула приложений в IIS 7.5), который используется, если приложение не олицетворяет собой. Если приложение олицетворяет себя с помощью идентификатора, идентификатором будет анонимный пользователь (обычно IUSR_MACHINENAME) или аутентифицированный пользователь запроса.
Я что-то пропустил в своей FtpWebRequest
или по другой причине, вызвавшей эту проблему.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(FTPRequest_Host + "myvideo.flv");
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.KeepAlive = true;
request.UsePassive = true;
request.UseBinary = true;
request.Credentials = new NetworkCredential(FTPRequest_Username, FTPRequest_Password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
using (FileStream writer = new FileStream(@"C: \\" + "myvideo.flv", FileMode.Create, FileAccess.ReadWrite))
{
long length = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[2048];
readCount = responseStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
writer.Write(buffer, 0, readCount);
readCount = responseStream.Read(buffer, 0, bufferSize);
}
}
reader.Close();
response.Close();