我正在尝试在网络浏览器中播放文件而不是下载。使用WordPress嵌入文件
[video width="250" height="140" m4v="http://www.justtalking.co.uk/wp-content/uploads/2014/02/Will-Aid-2013-Case-Study.m4v"][/video]
我想将链接Link to Video用于电子邮件营销目的。打开链接时,Web浏览器会下载文件而不是播放。但是,我更喜欢视频是在网络浏览器中播放的!
这可能吗?
答案 0 :(得分:3)
您需要在托管m4v文件的服务器上为video/mp4
和video/x-m4v
添加MIME / TYPE。关于如何执行此操作,您可以阅读here部分“MIME类型后面的丑陋头部”。
您的URL在响应标头中指示Content-Type:text / plain,因此提示下载。
答案 1 :(得分:1)
可能最纯粹的解决方案是添加标题" Content-Disposition:attachment"到那个文件。
无法在HTML链接级别上完成,但您可以通过.htaccess或虚拟主机配置来完成。
如果你有mod_header的apache2,你可以这样做:
<FilesMatch "\.jpg$">
Header add "Content-Disposition" "attachment"
</FilesMatch>
你必须制作简单的PHP脚本,使用header()函数来完成这项工作,然后简单地将目标文件传递给输出。
<?php
$allowed_path = __DIR__."/downloads/";
$file = $allowed_path.basename($_GET["file"]);
if(file_exists($file)) {
header("Content-disposition: attachment");
readfile($file);
}
else {
header('HTTP/1.1 404 Not Found', TRUE, 404);
}
我注意到的另一种方式是您的视频链接显示错误的内容类型(这是小问题):
Content-type: text/plain
你可以通过添加一个这样的标题来解决这个问题:
header("Content-type: ".mime_content_type($file));
但请注意安全性,因为如果你在$ allowed_path中有任何PHP文件,可以通过这个脚本下载它。