我正在上传文件并将它们保存在数据库中,但是当我下载它们时,我下载时返回了标题;当 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);
然后我尝试使用以下代码段下载文件:
`公共函数下载(){
$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;
}
`