ImportController.class.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Api\Controller;
  3. use Think\Controller;
  4. class ImportController extends BaseController {
  5. //导入markdown压缩包
  6. public function markdown(){
  7. set_time_limit(100);
  8. ini_set('memory_limit','200M');
  9. $login_user = $this->checkLogin();
  10. $file = $_FILES["file"]["tmp_name"] ;
  11. //$file = "../Public/markdown.zip" ; //test
  12. $zipArc = new \ZipArchive();
  13. $ret = $zipArc->open($file, \ZipArchive::CREATE);
  14. $info = $zipArc->getFromName(DIRECTORY_SEPARATOR."info.json") ;
  15. $info_array = json_decode($info ,1 );
  16. unset($info);
  17. if ($info_array) {
  18. $info_array = $this->_fileToMarkdown($info_array, $zipArc );
  19. //echo json_encode($info_array);return ;
  20. D("Item")->import( json_encode($info_array) , $login_user['uid'] );
  21. $this->sendResult(array());
  22. return ;
  23. }
  24. $this->sendError(10101);
  25. }
  26. private function _fileToMarkdown( $catalogData , $zipArc ){
  27. if ($catalogData['pages']) {
  28. foreach ($catalogData['pages'] as $key => $value) {
  29. if ($value['page_content']) {
  30. $catalogData['pages'][$key]['page_content'] = $zipArc->getFromName( $value['page_content']) ;//原来的内容由文件名变为文件内容
  31. }
  32. }
  33. }
  34. if ($catalogData['catalogs']) {
  35. foreach ($catalogData['catalogs'] as $key => $value) {
  36. if ($value) {
  37. $catalogData['catalogs'][$key] = $this->_markdownTofile($value , $zipArc);
  38. }
  39. }
  40. }
  41. return $catalogData ;
  42. }
  43. }