[英]How to open a file from db in php
我創建了一個個人資料頁面來查看會員信息的信息,其中之一是他/她的簡歷。 我可以管理具有打開或下載選項的窗口,但是有兩個問題:
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,如果可以,我將切換到大小寫doc和pdf並更改內容類型。
這是因為您的內容類型設置。 當瀏覽器是二進制文件時,您的瀏覽器不知道用哪個應用程序打開文檔。 嘗試使用更具描述性的內容類型更改內容類型,以使瀏覽器選擇適當的應用程序。 例如,對於PDF,它將是application/x-pdf
。 請參考MIME媒體類型目錄 。
您是否正在尋找這樣的東西:
因為您只想在瀏覽器中打開它,所以它應該對您有用。
請用您實際存在文檔文件的目錄名稱替換YOUR_DIRECOTRY_WHERE_FILE_IS_PRESENT_PHYSICALY
。
您的browserMember.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 />";
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.