ファイルをアップロードしてデータベースに保存していますが、ダウンロードすると、ダウンロード時にヘッダーが返されます。Chrome が正常に動作している間、Mozilla ではファイル形式とファイル名が失われます。コードの何が問題なのか知りたいです。アップロード用のコード セグメントとダウンロード用のコード セグメントを用意しました。
Ms word 文書の場合、返されたヘッダーは、文書が Microsoft Excel ワークシート (47.4 KB) であることを示しています。 私のコードを見てください。//アップロードするファイルの詳細を取得
$fileName =$suffix.$_FILES['report']['name'];
$tmpName = $_FILES['report']['tmp_name'];
$fileSize = $_FILES['report']['size'];
$fileType = $_FILES['report']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
};
`
` $documentData=array(
// 'periodId' => $this->input->post('period',true),
'reporter' => $this->session->userdata("userId"),
'documentName' => $fileName,
'documentType' => $fileType,
'documentSize' => $fileSize,rtv## Heading ##
'document'=> $content,
'date' => date("Y/m/d"));`
$this->document_model->save($documentData);
次に、次のコード セグメントを使用してファイルのダウンロードを試みます。
` public function download(){
$key=$this->uri->segment(3);
$query = "SELECT documentName, documentType, documentSize, document "
"FROM report_documents WHERE documentId='$key'"; `
` $result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) =mysql_fetch_array($result);
header("Content-type: $type");
header("Content-length: $size");
header("Content-Disposition: attachment; filename=$name");
echo $content;
exit;
}
`