2014-02-03 1 views
3

У меня есть веб-форма, которая содержит следующий HTML:GET запрос на удаление видеофайлов. Видео не может быть найдено

<body> 
    <form id="form1" runat="server"> 
    <div> 
     <video style="width: 100%;" controls autoplay> 
      <source src="<%= this.MP4 %>" type="video/mp4"> 
      <source src="<%= this.OGV %>" type="video/ogg"> 
      <source src="<%= this.WEBM %>" type="video/webm"> 
     Your browser does not support the video tag. 
     </video> 
    </div> 
    </form> 
</body> 

Эта страница открывается в окне FancyBox, а по видео файлу дается с помощью параметра URL (video.aspx?video=filename), с помощью которого путь к файлу построен в коде позади.

Когда я пытаюсь локально использовать Visual Studio 2012, все работает нормально. Также, если я вызываю файл через URL-адрес, например, так: http://localhost:52916/_video/filename.webm он работает.

Вот код:

protected void Page_PreRender(object sender, EventArgs e) 
{ 
    MP4 += Request.QueryString["video"] + ".mp4"; 
    OGV += Request.QueryString["video"] + ".ogv"; 
    WEBM += Request.QueryString["video"] + ".webm"; 
} 

Но на живом сервере не могут быть найдены видео (404), а также, если вызывается непосредственно, и когда я проверить Chrome консоль я могу видеть, что все ГЭТ запросы на видеофайлы будут отменены.

И не имеет значения, открыта ли страница в окне fancybox или если я ее открываю напрямую, она по-прежнему не работает. Я также пробовал это с путями к уже заполненным файлам, а не программировать их.

Я нашел несколько человек, которые, похоже, имели такую ​​же проблему, но ни один из их решений не работал.

ответ

1

Если он работает локально, но не живет, проблема в том, что веб-сервер в реальном времени не настроен на обслуживание этих типов файлов. Попробуйте добавить это в web.config под system.webServer запись:

<staticContent> 
    <mimeMap fileExtension=".ogg" mimeType="application/ogg" /> 
    <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> 
    <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".webm" mimeType="video/webm" /> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
</staticContent> 

В некоторых версиях IIS неизвестные расширения файлов (например, ogg, webm) приведет к 404, поэтому вы должны определить тип пантомимы ,

+0

Да, я только что проверил это. Проблема в типе вызвала проблему. Спасибо, я тоже попробую. – webster69

+0

@ webster69 Вы можете либо установить его через IIS, либо вы можете сделать это в файле web.config следующим образом. Он делает то же самое. – MikeSmithDev

+0

Хорошо, хорошо знать, спасибо. Я сделал оба, чтобы быть уверенным :) – webster69

1

При настройке необходимо кодировать ваше видеофайлы (фактический URL-адрес видео). Если вы задаете имя файла с помощью кода позади непосредственно, то Server.URLEncode должен работать. Если вы отправляете свое имя файла в функцию js, которая, в свою очередь, делает остальные, используйте функцию JavaScriptEncode в библиотеке AntiXss.

Надеюсь, это поможет.

+0

Я пробовал это, это не имело значения. Он знает, где находятся файлы, но по какой-либо причине он отменяет запрос GET. – webster69