天天看點

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檔案了