Загрузка / просмотр вложенных файлов Oracle Service Cloud

Я новичок в облачном сервисе, и мне было поручено выяснить способ сохранения файловых вложений в пользовательских объектах. Я полагаю, что то, что я имею до сих пор, выполняет только это, поскольку я могу видеть новые записи, создаваемые в моем объекте. Мой следующий шаг - найти способ найти загруженные файлы с указанным идентификатором и отобразить интерактивную ссылку, которая откроется на новой вкладке для отображения содержимого загруженного файла. (похоже на стандартный виджет FileListDisplay). Согласно документации API Connect PHP, ни ROQL-запрос, ни fetch() не возвращают данные о вложенных файлах. Как бы я показывал загруженные файлы?

Код пока (сокращён для краткости)

Посмотреть:

   <form action="https://test.rightnowdemo.com/app/Upload2/uploadcontroller2" method="post" enctype="multipart/form-data" />
      <div>
     <h3>Select a .txt file only:</h3><br />
       <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
       <label for="userfile">Select a file:</label>
       <input type="file" class="form-control" name="userfile" /><br>
       <input type="submit" class="nybeButton" value="Send" />
     </div>
  </form> 

контроллер:

function store_attachment($FileName, $FileLocation, $FileType)
{


    $MyDocument = new RightNow\Connect\v1_1\UPLOAD\Documents();
    $MyDocument->FileAttachments = new RightNow\Connect\v1_1\FileAttachmentArray();
    $MyDocument->UserName = "Test user";
    $fattach = new RightNow\Connect\v1_1\FileAttachment();

    $fattach->ContentType = $FileType;

    $file = $FileLocation;
    $fattach->setFile($file);
    $fattach->FileName = $FileName;
    $MyDocument->FileAttachments[] = $fattach;
    //\RightNow\Libraries\AbuseDetection::check();
    $MyDocument->save();
}
$FileName = $_FILES["userfile"]["name"];
$FileLocation = get_cfg_var('upload_tmp_dir') . "/" . $_FILES["userfile"]["name"];
$FileType = $_FILES["userfile"]["type"];
store_attachment($FileName, $FileLocation, $FileType);

1 ответ

Решение

Подобный вопрос в последнее время задавался сообществам OSvC. Как правило, нет способа получить данные файла через Connect for PHP; вы можете установить это только через Connect (раньше у нас было несколько сценариев, чтобы обойти это с помощью PHP, но я считаю, что Prod Dev закрыл все методы PHP для доступа к файловым серверам). Вы должны использовать SOAP API для получения файлов через ваш код.

Однако, если вы просто хотите отобразить на портале клиентов ссылку на файл, вы можете использовать следующий формат в соответствии с ответом Аруна в сообществах:

<a href="/ci/fattach/get/<?php echo $file->ID; ?>/<?php echo $file->CreatedTime; ?>/filename/<?php echo urlencode($file->FileName); ?>">Download File</a>
Другие вопросы по тегам