Exemplo n.º 1
0
 /**
  * @param $name
  *
  * @return string
  */
 static function makeFileName($name, $dest)
 {
     $info = pathinfo($name);
     $basename = substr($info['basename'], 0, -(strlen(CRM_Utils_Array::value('extension', $info)) + (CRM_Utils_Array::value('extension', $info) == '' ? 0 : 1)));
     $filename = null;
     if (!CRM_Utils_File::isExtensionSafe(CRM_Utils_Array::value('extension', $info))) {
         // munge extension so it cannot have an embbeded dot in it
         // The maximum length of a filename for most filesystems is 255 chars.
         // We'll truncate at 240 to give some room for the extension.
         $filename = CRM_Utils_String::munge("{$basename}_" . CRM_Utils_Array::value('extension', $info), '_', 240) . ".unknown";
     } else {
         $filename = CRM_Utils_String::munge("{$basename}", '_', 240) . "." . CRM_Utils_Array::value('extension', $info);
     }
     $newFilename = $filename;
     $i = 1;
     while (file_exists($dest . $newFilename)) {
         $fileinfo = pathinfo($dest . $filename);
         $newFilename = $fileinfo['filename'] . '(' . $i++ . ')' . '.' . $fileinfo['extension'];
     }
     return $newFilename;
 }