首页 > 解决方案 > 将文件名与字符串分开

问题描述

最终解决方案

大家好,

这是我用来在 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;
}

感谢所有人对此的帮助。所有的评论都让我明白了最后一点。

谢谢安德鲁


我有一个字符串,它从多个文件上传到重力形式的文件数组中输出。我需要将每个文件拆分为自己的变量,以便可以将每个文件上传到外部服务器。字符串输出如下:

"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);

我正在使用此功能进行单个文件上传,并且效果很好。

提前致谢...

标签: phpforeachgravityforms

解决方案


尝试这样的事情:

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

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

编辑:

//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);
}

推荐阅读