天天看点

Drupal上把phpExcel生成的Excel文件保存到Drupal文件系统

1.为了避免与原文件系统混淆,手动创建保存文件夹(手动保存到文件系统,记得检查重名并把重名文件修改)

$uri = 'public://your_folder/';
$file_path = drupal_realpath($uri);
$filename = $opt['filename'].'.xls';
$file_exist_path = $file_path.'/'.$filename;
if(!is_dir($file_path)) {//如果不存在目录则创建目录
    drupal_mkdir($uri);
}
           

2.将PHPExcel生成的excel文件保存到目录下

$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($file_exist_path);//保存excel文件
           

3.在文件系统中插入对应保存文件信息,并得到文件fid

global $user;
$insert = db_insert('file_managed');
$insert->fields(array(
    'uid'       => $user->uid,
    'filename'  => $filename,
    'uri'       => $uri .'/'. $filename,
    'filemime'  => 'application/vnd.ms-excel',
    'filesize'  => $filesize,
    'status'    => 1,
    'timestamp' => REQUEST_TIME
));
$fid = $insert->execute();
           

4.把fid加入到 file_usage表

$file = file_load($fid);
file_usage_add($file, 'module', 'type', $fid);
           

5.现在就能通过fid来操作PHPExcel文件生成的excel文件了