我正在上传文件并将其保存在数据库中,但是当我下载它们时,我下载时会返回标题;当chrome正常工作时,文件格式和fileName在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;
}
`