0

我在我的数据库中存储了一些多个附件,通过代码序列化附件数据在一列中:

        $files = array(
'file1' => base64_encode(file_get_contents('back.jpg')),
'file2' => base64_encode(file_get_contents('email.jpg')),
'file3' => base64_encode(file_get_contents('web.jpg')),
  );
     // serialize
     $filesData = serialize($files);

现在,在另一个 php 页面中,我正在下载要下载的文件,其中我对上述文件数据进行反序列化,从数据库列“数据”中获取它们

使用以下代码反序列化数据,但似乎数据没有反序列化,我保存了三张图片,当我检索它们时,我下载了一个 .txt 文件,其中写有“数组”

     if($result->num_rows == 1) {
         $row = mysqli_fetch_assoc($result);
       // Print headers
            header("Content-Type: ". $row['mime']);
            header("Content-Length: ". $row['size']);
            header("Content-Disposition: attachment; filename=". $row['name']);

        $files = unserialize($row['data']);
            echo $files;
        }
4

1 回答 1

0

$files is an array containing the three files, what do you expect?

"Array" is the result of the string cast from echo.

try echo $files['file1'] etc..

于 2012-04-13T13:42:09.007 回答