Response.WriteFile с URL возможно?
Я хотел бы иметь возможность сделать это:
Response.WriteFile ("http://domain/filepath/file.mpg")
Но я получаю эту ошибку:
Invalid path for MapPath 'http://domain/filepath/file.mpg'
A virtual path is expected.
WriteFile
Метод не работает с URL. Есть ли другой способ, которым я могу написать содержимое URL на мою страницу?
Благодарю.
3 ответа
Если вам нужен код для такой работы, вам сначала нужно будет динамически загрузить его на свой сервер:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://domain/filepath/file.mpg");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream file = response.GetResponseStream();
С этого момента у вас есть содержимое файла в виде потока, и вам придется читать / записывать байты в ответ.
Я отмечу, однако, что это не обязательно оптимально - вы будете убивать свою пропускную способность, потому что каждый файл будет использовать гораздо больше ресурсов, чем необходимо.
Если возможно, переместите файл на свой сервер или заново продумайте, что именно вы пытаетесь сделать.
Возможное решение было бы просто использовать:
Response.Redirect("http://domain/filepath/file.mpg")
Но тогда я не уверен, действительно ли это то, что вы действительно пытаетесь сделать или нет.
В основном у вас есть пара вариантов. Вы можете скачать файл на свой сервер и использовать его Response.WriteFile
или вы можете перенаправить на фактическое местоположение. Если файл уже находится на вашем сервере, вам просто нужно указать путь к файловой системе Response.WriteFile
вместо URL, или используйте виртуальный URL, удалив http://domain
,