2

PHP スクリプトから Document を Sugar オブジェクト (クライアント) に追加しようとしています。ファイルのディレクトリ (sugarCRM がインストールされているのと同じサーバー上) と、sugar オブジェクト ID とファイル名を含む xls があります)。PHP スクリプトは、特定のシュガー オブジェクト (ID で識別される) に正しいファイル名を追加する必要があります。私はXLSを読むことができますが、これは問題ありません.sugarオブジェクトのインスタンスを取得することもできます(IDで取得)が、ファイルをsugarに割り当てる方法がわかりません. Document と upload_file.php で試してみましたが、html フォームで単一ファイルをアップロードするのに使用できるようです。

このタスクを自動化し、正しいファイル名でファイルをコピーしcache\uploadて、PHP スクリプトから顧客に関連するドキュメントを作成するにはどうすればよいですか? 必要がなければ、SOAP を使用したくないのですが...


編集:

ドキュメントとリビジョンを保存できましたが、何か問題があり、ブラウザからファイルをダウンロードできません (「ファイルへの呼び出しが正しくありません」)。

これまでの私のコードは次のとおりです。

  require_once('include/upload_file.php');

  $upload_file = new UploadFile('uploadfile');
  $document->filename = 'robots.txt';
  $document->document_name = 'robots.txt';

  $document->save();
  $contents = file_get_contents ($document->filename);

  $revision = new DocumentRevision;
  $revision->document_id = $document->id;
  $revision->file = base64_encode($contents);
  $revision->filename = $document->filename;
  $revision->revision = 1;
  $revision->doc_type = 'Sugar';
  $revision->file_mime_type = 'text/plain';

  $revision->save();

  $document->revision_id = $revision->id;
  $document->save();

  $destination = clean_path($upload_file->get_upload_path($document->id));

  $fp = sugar_fopen($destination, 'wb');

  if( !fwrite($fp, $contents) ){
      die("ERROR: can't save file to $destination");
  }

  fclose($fp);
4

1 に答える 1

1

動作します!これが、上記のコードから3行を修正した人に役立つことを願っています:

  //$document->revision_id = $revision->id;
  //$document->save();

   $destination = clean_path($upload_file->get_upload_path($revision->id));
于 2013-08-15T06:53:20.877 に答える