我创建了一个个人资料页面来查看会员信息,其中一个信息是他/她的简历。我可以管理查看具有打开或下载选项的窗口但是我有两个问题:
1-在Chrome中打开选项不显示我只有下载选项。
2-我无法在Chrome和Firefox中打开或下载cv,文件名在打开或保存窗口中显示服务器名称。
这是我的代码: PHP:
if(isset($_GET['cv']))
{
$id = $_GET['cv'];
$query = "SELECT `fileName`, `fileType`, `fileSize`, `fileContent` FROM `boardteam` WHERE `nationalID` = '$id'";
$r = mysql_query($query) or die('Error, query failed');
list($fname, $ftype, $fsize, $fcontent) = mysql_fetch_array($r);
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header("Content-Disposition: attachment; filename=$fname");
header('Content-Length: ' . filesize($fsize));
ob_clean();
flush();
readfile($fname);
exit;
}
HTML:
<a href='browseMember.php?cv=<?php echo $member_id?>'>
<?php
$q = "SELECT `fileName`, `fileType`, `fileSize`, `fileContent` FROM `boardteam` WHERE `nationalID` = '$member_id'";
$r = mysql_query($q) or die('Error, query failed');
list($fname, $ftype, $fsize, $fcontent) = mysql_fetch_array($r);
if ($fname)
{
echo "click here to open member CV";
}
?>
</a>
更新:
让我们假设cv文件类型是docx,如果它有效,我将切换到case doc和pdf并更改内容类型。
答案 0 :(得分:0)
这是因为您的内容类型设置。您的浏览器在二进制文件时不知道打开文档的应用程序。尝试使用更具描述性的内容类型更改内容类型,以便浏览器选择适当的应用程序。例如,对于PDF,它将是application/x-pdf
。其他人请参阅MIME Media type directory。
答案 1 :(得分:0)
你在寻找这样的东西:
因为,你只想在浏览器中打开它,它应该适合你。
请将YOUR_DIRECOTRY_WHERE_FILE_IS_PRESENT_PHYSICALY
替换为文档实际存在的目录名。
您的 browseMember.php 代码将如下所示:
<?php
if(isset($_GET['cv']))
{
$id = $_GET['cv'];
$query = "SELECT `fileName`, `fileType`, `fileSize`, `fileContent` FROM `boardteam` WHERE `nationalID` = '$id'";
$r = mysql_query($query) or die('Error, query failed');
while ($rowDoc = mysql_fetch_array($r)){ ?>
<div id="wrapper">
<div><a href="YOUR_DIRECOTRY_WHERE_FILE_IS_PRESENT_PHYSICALY/<?=$rowDoc['fileName']; ?>" target="_blank" class="text_2" style="text-decoration:none;" ><strong><? echo($row_pdf['fileName']);?></strong></a></div>
</div>
<?php
echo "<br />";
}
}
?>