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);  

次に、次のコード セグメントを使用してファイルのダウンロードを試みます。

` 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;

}

`

4

0 に答える 0