Отдельные имена файлов от строки - PullRequest
0 голосов
/ 24 июня 2019

ЗАКЛЮЧИТЕЛЬНОЕ РЕШЕНИЕ

Привет всем,

Вот окончательный код, который я использую для загрузки многофайловой загрузки в GF.Этот код протестирован и был аутентифицирован моей сторонней системой.

 $form_id = $entry[ '1' ];
$upload_path = GFFormsModel::get_upload_path( $form_id );
$upload_url = GFFormsModel::get_upload_url( $form_id );

$arrPaths = str_replace( $upload_url, $upload_path, $entry[ 'x' ] );

$Paths = explode('","', substr($arrPaths, 1, -1));

$t=1;

foreach ($Paths as $key => $path) {
  $path =  str_replace('"', '', $path);
  $path =  str_replace('\/', '/', $path);
  $path =  str_replace('["', '', $path);
  $path =  str_replace('"]', '', $path);

$Paths[$key] = $path;

$add_client_files_POA = array(
  "strURL" => $path,
  "nClientId" => $clientId,
  "nContactId" => $contactId,
  "fileType" => rgar( $entry, 'y' ),
  "fileName" => "Proof of Address" . $t
);
if(!empty($add_client_share_three_payload['strURL'])) {
  $add_client_response = $client->UploadCtcFileURL($add_client_files_POA);
  }
$t=$t+1;
}

Спасибо всем за помощь в этом.все комментарии привели меня к конечной точке.

Спасибо, Эндрю


У меня есть строка, которая выводится в массиве файлов в Gravity Forms из нескольких файлов uplaod.Мне нужно разделить каждый файл на его собственную переменную, чтобы я мог загрузить каждый из файлов на внешний сервер.Строка выводится следующим образом:

"https:\/\/www.xyz.com\/folder\/sub-folder\/example1.jpg","https:\/\/www.xyz.com\/folder\/sub-folder\/example2.jpg","https:\/\/www.xyz.com\/folder\/sub-folder\/example3.jpg","https:\/\/www.xyz.com\/folder\/sub-folder\/example4.jpg"

Мне нужно отделить каждый из этих файлов, а затем запустить функцию для загрузки каждого файла по отдельности, поскольку API не позволяет загружать сразу несколько файлов.

Я думаю, мне нужно будет выполнить команду foreach , но мне нужно убрать "" , , и заменить / с / .Возможно ли это?

Моя загрузка SOAP выглядит следующим образом.

$form_id = $entry[ '1' ];
 $upload_path = GFFormsModel::get_upload_path( $form_id );
  $upload_url = GFFormsModel::get_upload_url( $form_id );
 $POI = str_replace( $upload_url, $upload_path, $entry[ 'y' ] );

    $add_client_files_POI = array(
        "strURL" => $POI,
        "nClientId" => $clientId,
        "nContactId" => $contactId,
        "fileType" => rgar( $entry, 'x'),
        "fileName" => rgar( $entry, 'x')
    );
    $add_client_response = $client->UploadCtcFileURL($add_client_files_POI);

Я использую эту функцию для загрузки одного файла, и она отлично работает.

Заранее спасибо...

1 Ответ

0 голосов
/ 24 июня 2019

Попробуйте что-то вроде этого:

//get paths with " removed
$arrPaths = explode('","', substr($paths, 1, -1));

foreach ($arrPaths as $path) {
  //change / characters
  $path =  str_replace('\/', '/', $path);
}

Edit:

//get paths with " removed
$arrPaths = explode('","', substr($paths, 1, -1));

foreach ($arrPaths as $path) {
  //change \/ to / characters
  $path =  str_replace('\/', '/', $path);

  $add_client_files_POI = array(
      "strURL" => $path,
      "nClientId" => $clientId,
      "nContactId" => $contactId,
      "fileType" => rgar( $entry, 'x'),
      "fileName" => rgar( $entry, 'x')
  );
  $add_client_response = $client->UploadCtcFileURL($add_client_files_POI);
}
...