色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Mysql存附件表都打不開

錢浩然2年前9瀏覽0評論

最近使用Mysql存儲附件表時遇到了一個問題,就是附件無法打開。

首先,我檢查了Mysql表結構的定義,發現附件字段的類型為BLOB,這是一種二進制數據類型,可以存儲任何類型的數據。

接著,我檢查了數據庫中存儲的附件數據,發現數據是完整的,沒有任何損壞。

為了進一步排除問題,我使用了多種方式打開附件,包括使用Windows自帶的圖片查看器、Microsoft Word等軟件,但都沒有成功。

最后,我想到可能是我的代碼有問題。于是,我檢查了代碼,發現我使用了錯誤的編碼方式進行了附件的上傳和下載。正確的編碼方式應該是base64,而不是binary。

// 上傳附件
$base64_file = base64_encode(file_get_contents($file_path));
$sql = "INSERT INTO attachment (file_name, file_type, file_content) VALUE (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$file_name, $file_type, $base64_file]);
// 下載附件
$sql = "SELECT * FROM attachment WHERE attachment_id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$attachment_id]);
$attachment = $stmt->fetch();
header('Content-Type: ' . $attachment['file_type']);
header('Content-Disposition: attachment; filename="' . $attachment['file_name'] . '"');
echo base64_decode($attachment['file_content']);

通過修改編碼方式,我成功解決了這個問題,現在可以正常地打開附件。