Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 下载按钮不能下载mp4,但可以下载.exe_Php_Html_Sql_Iis_Video - Fatal编程技术网

Php 下载按钮不能下载mp4,但可以下载.exe

Php 下载按钮不能下载mp4,但可以下载.exe,php,html,sql,iis,video,Php,Html,Sql,Iis,Video,嗯,;我已经花了大约6个小时试图弄明白这一点,现在我正在创建一个简单的网站,您可以下载视频和应用程序 我有一个数据库,存储视频的标题和它需要下载的媒体的Id 我遇到的问题是,当我尝试下载mp4文件格式时,我收到一个404错误,表示它找不到该文件。如果我将代码中的扩展名交换为.exe格式,它会找到该文件,并询问您是否希望保存或运行该文件 浏览器的URL在两个文件中都正确显示,但实际上只有.exe可以工作。任何想法或帮助都将不胜感激 下载按钮代码为: <div id="Media_downlo

嗯,;我已经花了大约6个小时试图弄明白这一点,现在我正在创建一个简单的网站,您可以下载视频和应用程序

我有一个数据库,存储视频的标题和它需要下载的媒体的Id

我遇到的问题是,当我尝试下载mp4文件格式时,我收到一个404错误,表示它找不到该文件。如果我将代码中的扩展名交换为.exe格式,它会找到该文件,并询问您是否希望保存或运行该文件

浏览器的URL在两个文件中都正确显示,但实际上只有.exe可以工作。任何想法或帮助都将不胜感激

下载按钮代码为:

<div id="Media_download">
<a href="http://thor/classroom/Downloads/'.$row['media_id'].''.$row['title'].'.mp4" target="_blank">
<img class="Download_Button" src="images/download.jpg"></a>
</div>  
我正在运行一个WindowsServer2008R2作为我的测试服务器,我正在使用PHPVersion5.3

我有根目录/downloads文件夹/这是我的mp4文件和.exe所在的位置,如上面所示

文件名显示为媒体id、标题、扩展名;比如说
1Cleaner.exe或2rush.mp4很可能是浏览器试图播放mp4文件,而不是像使用.exe一样提示用户下载。它打开一个新窗口target=\u blank,然后尝试导航到web根目录之外的位置http://thor/classroom/Downloads.... 如果您引导用户右键单击并选择“另存为”,那么它可能会按照您的预期工作


您可能会在此处找到其他一些有用的信息:

很可能,浏览器正在尝试播放mp4文件,而不是像使用.exe那样提示用户下载。它打开一个新窗口target=\u blank,然后尝试导航到web根目录之外的位置http://thor/classroom/Downloads.... 如果您引导用户右键单击并选择“另存为”,那么它可能会按照您的预期工作


您可能会在这里找到一些其他有用的信息:

我猜您在使用windows托管应用程序时使用IIS。 您是否已将正确的mime类型添加到IIS配置中

您应该在Mime映射中将mp4添加为视频/mp4:

信息来源

选择要在IIS中配置的网站 右键单击“选择属性” 选择HTTP标题选项卡 在MIME映射部分下选择文件类型 选择新类型Type.mp4作为扩展名,选择video/mp4作为mime类型 选择OK。 如果仍然没有更改,则重新启动iis

关于下载,html5有一个新的下载属性,而不是在新选项卡中打开:

我想当您使用windows托管应用程序时,您会使用IIS。 您是否已将正确的mime类型添加到IIS配置中

您应该在Mime映射中将mp4添加为视频/mp4:

信息来源

选择要在IIS中配置的网站 右键单击“选择属性” 选择HTTP标题选项卡 在MIME映射部分下选择文件类型 选择新类型Type.mp4作为扩展名,选择video/mp4作为mime类型 选择OK。 如果仍然没有更改,则重新启动iis

关于下载,html5有一个新的下载属性,而不是在新选项卡中打开:

您是否已验证URL是否与预期路径匹配?因为找不到404文件。@ElliottFrisch是的,它们都有相同的名称,并且都在下载文件夹中。它们在url中都有正确的媒体id和标题,但只找到了.exe。您使用什么作为Web服务器?windows server是一个操作系统。您可以在其上运行任何类型的Web服务器。Apache、IIS、NginX……您的href不正确。如果你真的在重复它,那么相应地修改你的问题。如果这是您的实际代码,那么它是无效的。您是否验证了URL与您的预期路径匹配?因为找不到404文件。@ElliottFrisch是的,它们都有相同的名称,并且都在下载文件夹中。它们在url中都有正确的媒体id和标题,但只找到了.exe。您使用什么作为Web服务器?windows server是一个操作系统。您可以在其上运行任何类型的Web服务器。Apache、IIS、NginX……您的href不正确。如果你真的在重复它,那么相应地修改你的问题。如果这是你的代码,这是无效的。@GeraldSchneider什么没有意义???@GeraldSchneider我在问题中提供的代码允许我下载一个.exe文件,但不允许我下载一个名称相同的mp4文件,并且代码被改为.mp4而不是exe。什么让你困惑?@user3387522我在谈论beercodebeer的答案,不是你的问题。他说@beercodebeer给出的答案毫无意义,他说这毫无意义是正确的。浏览器对待mp4文件不同于前男友。根据用户的设置和浏览器的风格,它可能会尝试播放mp4,或者用户的媒体播放器可能会介入并尝试播放。为了保存文件,他们需要手动选择“另存为”,或者您可以压缩要下载的文件并链接到*.zip。如果文件为N
在web根目录之外,这对我来说是一个误解,但如果浏览器返回404以获取其他有效路径,这对我来说是有意义的。正如米布森指出的那样,这很可能也是一个MIME类型的问题。@GeraldSchneider什么没有意义???@GeraldSchneider我在问题中提供的代码允许我下载一个.exe文件,但不允许我下载一个名称相同的mp4文件,并且代码已改为.mp4而不是exe。什么让你感到困惑?@user3387522我在说关于beercodebeer的答案,不是你的问题。他说@beercodebeer给出的答案毫无意义,他说这毫无意义是正确的。浏览器对待mp4文件不同于前男友。根据用户的设置和浏览器的风格,它可能会尝试播放mp4,或者用户的媒体播放器可能会介入并尝试播放。为了保存文件,他们需要手动选择“另存为”,或者您可以压缩要下载的文件并链接到*.zip。如果文件不在web根目录之外,那么这对我来说是一个误解,但是如果浏览器返回404以获取其他有效路径,那么对我来说是有意义的。正如Mibsen指出的,这很可能也是一个MIME类型的问题。谢谢。在我将MIME类型添加到服务器并重新启动后,这是完全正确的。它允许我下载file=D谢谢。在我将MIME类型添加到服务器并重新启动后,这是完全正确的。它允许我下载file=D