0

我正在上传文件并将它们保存在数据库中,但是当我下载它们时,我下载时返回了标题;当 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;

}

`

4

0 回答 0