".$clang->gT("Import survey resources")."\n"; $importsurveyresourcesoutput .= "
"; if ($demoModeOnly === true) { $importsurveyresourcesoutput .= "
".$clang->gT("Error")."

\n"; $importsurveyresourcesoutput .= $clang->gT("Demo Mode Only: Uploading file is disabled in this system.")."

\n"; $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "
\n"; return; } require("classes/phpzip/phpzip.inc.php"); $zipfile=$_FILES['the_file']['tmp_name']; $z = new PHPZip(); // Create temporary directory // If dangerous content is unzipped // then no one will know the path $extractdir=tempdir($tempdir); $basedestdir = $uploaddir."/surveys"; $destdir=$basedestdir."/$surveyid/"; if (!is_writeable($basedestdir)) { $importsurveyresourcesoutput .= "
".$clang->gT("Error")."

\n"; $importsurveyresourcesoutput .= sprintf ($clang->gT("Incorrect permissions in your %s folder."),$basedestdir)."

\n"; $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "\n"; return; } if (!is_dir($destdir)) { mkdir($destdir); } $aImportedFilesInfo=null; $aErrorFilesInfo=null; if (is_file($zipfile)) { $importsurveyresourcesoutput .= "
".$clang->gT("Success")."

\n"; $importsurveyresourcesoutput .= $clang->gT("File upload succeeded.")."

\n"; $importsurveyresourcesoutput .= $clang->gT("Reading file..")."

\n"; if ($z->extract($extractdir,$zipfile) != 'OK') { $importsurveyresourcesoutput .= "
".$clang->gT("Error")."

\n"; $importsurveyresourcesoutput .= $clang->gT("This file is not a valid ZIP file archive. Import failed.")."

\n"; $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "\n"; return; } // now read tempdir and copy authorized files only $dh = opendir($extractdir); while($direntry = readdir($dh)) { if (($direntry!=".")&&($direntry!="..")) { if (is_file($extractdir."/".$direntry)) { // is a file $extfile = substr(strrchr($direntry, '.'),1); if (!(stripos(','.$allowedresourcesuploads.',',','.$extfile.',') === false)) { //Extension allowed if (!copy($extractdir."/".$direntry, $destdir.$direntry)) { $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Copy failed") ); unlink($extractdir."/".$direntry); } else { $aImportedFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("OK") ); unlink($extractdir."/".$direntry); } } else { // Extension forbidden $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Error")." (".$clang->gT("Forbidden Extension").")" ); unlink($extractdir."/".$direntry); } } // end if is_file } // end if ! . or .. } // end while read dir //Delete the temporary file unlink($zipfile); //Delete temporary folder rmdir($extractdir); // display summary $okfiles = 0; $errfiles= 0; $ErrorListHeader = ""; $ImportListHeader = ""; if (is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo)) { $status=$clang->gT("Success"); $statusClass='successheader'; $okfiles = count($aImportedFilesInfo); $ImportListHeader .= "
".$clang->gT("Imported Files List").":
\n"; } elseif (is_null($aErrorFilesInfo) && is_null($aImportedFilesInfo)) { $importsurveyresourcesoutput .= "
".$clang->gT("Error")."

\n"; $importsurveyresourcesoutput .= $clang->gT("This ZIP archive contains no valid Resources files. Import failed.")."

\n"; $importsurveyresourcesoutput .= $clang->gT("Remember that we do not support subdirectories in ZIP archives.")."

\n"; $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "\n"; return; } elseif (!is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo)) { $status=$clang->gT("Partial"); $statusClass='partialheader'; $okfiles = count($aImportedFilesInfo); $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
".$clang->gT("Error Files List").":
\n"; $ImportListHeader .= "
".$clang->gT("Imported Files List").":
\n"; } else { $status=$clang->gT("Error"); $statusClass='warningheader'; $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
".$clang->gT("Error Files List").":
\n"; } $importsurveyresourcesoutput .= "".$clang->gT("Imported Resources for")." SID: $surveyid

\n"; $importsurveyresourcesoutput .= "
".$status."

\n"; $importsurveyresourcesoutput .= "".$clang->gT("Resources Import Summary")."
\n"; $importsurveyresourcesoutput .= "".$clang->gT("Total Imported files").": $okfiles
\n"; $importsurveyresourcesoutput .= "".$clang->gT("Total Errors").": $errfiles
\n"; $importsurveyresourcesoutput .= $ImportListHeader; foreach ($aImportedFilesInfo as $entry) { $importsurveyresourcesoutput .= "\t
  • ".$clang->gT("File").": ".$entry["filename"]."
  • \n"; } if (!is_null($aImportedFilesInfo)) { $importsurveyresourcesoutput .= "\t
    \n"; } $importsurveyresourcesoutput .= $ErrorListHeader; foreach ($aErrorFilesInfo as $entry) { $importsurveyresourcesoutput .= "\t
  • ".$clang->gT("File").": ".$entry['filename']." (".$entry['status'].")
  • \n"; } if (!is_null($aErrorFilesInfo)) { $importsurveyresourcesoutput .= "\t
    \n"; } } else { $importsurveyresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importsurveyresourcesoutput .= sprintf ($clang->gT("An error occurred uploading your file. This may be caused by incorrect permissions in your %s folder."),$basedestdir)."

    \n"; $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "\n"; return; } $importsurveyresourcesoutput .= "\n"; $importsurveyresourcesoutput .= "\n"; } if ($action == "importlabelresources" && $lid) { $importlabelresourcesoutput = "
    ".$clang->gT("Import Label Set")."
    \n"; $importlabelresourcesoutput .= "
    "; if ($demoModeOnly === true) { $importlabelresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importlabelresourcesoutput .= sprintf ($clang->gT("Demo mode only: Uploading files is disabled in this system."),$basedestdir)."

    \n"; $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "
    \n"; return; } require("classes/phpzip/phpzip.inc.php"); //$the_full_file_path = $tempdir . "/" . $_FILES['the_file']['name']; $zipfile=$_FILES['the_file']['tmp_name']; $z = new PHPZip(); // Create temporary directory // If dangerous content is unzipped // then no one will know the path $extractdir=tempdir($tempdir); $basedestdir = $publicdir."/upload/labels"; $destdir=$basedestdir."/$lid/"; if (!is_writeable($basedestdir)) { $importlabelresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importlabelresourcesoutput .= sprintf ($clang->gT("Incorrect permissions in your %s folder."),$basedestdir)."

    \n"; $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "\n"; return; } if (!is_dir($destdir)) { mkdir($destdir); } $aImportedFilesInfo=null; $aErrorFilesInfo=null; if (is_file($zipfile)) { $importlabelresourcesoutput .= "
    ".$clang->gT("Success")."

    \n"; $importlabelresourcesoutput .= $clang->gT("File upload succeeded.")."

    \n"; $importlabelresourcesoutput .= $clang->gT("Reading file..")."

    \n"; if ($z->extract($extractdir,$zipfile) != 'OK') { $importlabelresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importlabelresourcesoutput .= $clang->gT("This file is not a valid ZIP file archive. Import failed.")."

    \n"; $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "\n"; return; } // now read tempdir and copy authorized files only $dh = opendir($extractdir); while($direntry = readdir($dh)) { if (($direntry!=".")&&($direntry!="..")) { if (is_file($extractdir."/".$direntry)) { // is a file $extfile = substr(strrchr($direntry, '.'),1); if (!(stripos(','.$allowedresourcesuploads.',',','.$extfile.',') === false)) { //Extension allowed if (!copy($extractdir."/".$direntry, $destdir.$direntry)) { $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Copy failed") ); unlink($extractdir."/".$direntry); } else { $aImportedFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("OK") ); unlink($extractdir."/".$direntry); } } else { // Extension forbidden $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Error")." (".$clang->gT("Forbidden Extension").")" ); unlink($extractdir."/".$direntry); } } // end if is_file } // end if ! . or .. } // end while read dir //Delete the temporary file unlink($zipfile); //Delete temporary folder rmdir($extractdir); // display summary $okfiles = 0; $errfiles= 0; $ErrorListHeader .= ""; $ImportListHeader .= ""; if (is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo)) { $status=$clang->gT("Success"); $statusClass='successheader'; $okfiles = count($aImportedFilesInfo); $ImportListHeader .= "
    ".$clang->gT("Imported Files List").":
    \n"; } elseif (is_null($aErrorFilesInfo) && is_null($aImportedFilesInfo)) { $importlabelresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importlabelresourcesoutput .= $clang->gT("This ZIP archive contains no valid Resources files. Import failed.")."

    \n"; $importlabelresourcesoutput .= $clang->gT("Remember that we do not support subdirectories in ZIP archives.")."

    \n"; $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "\n"; return; } elseif (!is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo)) { $status=$clang->gT("Partial"); $statusClass='partialheader'; $okfiles = count($aImportedFilesInfo); $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
    ".$clang->gT("Error Files List").":
    \n"; $ImportListHeader .= "
    ".$clang->gT("Imported Files List").":
    \n"; } else { $status=$clang->gT("Error"); $statusClass='warningheader'; $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
    ".$clang->gT("Error Files List").":
    \n"; } $importlabelresourcesoutput .= "".$clang->gT("Imported Resources for")." LID: $lid

    \n"; $importlabelresourcesoutput .= "
    ".$status."

    \n"; $importlabelresourcesoutput .= "".$clang->gT("Resources Import Summary")."
    \n"; $importlabelresourcesoutput .= "".$clang->gT("Total Imported files").": $okfiles
    \n"; $importlabelresourcesoutput .= "".$clang->gT("Total Errors").": $errfiles
    \n"; $importlabelresourcesoutput .= $ImportListHeader; foreach ($aImportedFilesInfo as $entry) { $importlabelresourcesoutput .= "\t
  • ".$clang->gT("File").": ".$entry["filename"]."
  • \n"; } if (!is_null($aImportedFilesInfo)) { $importlabelresourcesoutput .= "\t
    \n"; } $importlabelresourcesoutput .= $ErrorListHeader; foreach ($aErrorFilesInfo as $entry) { $importlabelresourcesoutput .= "\t
  • ".$clang->gT("File").": ".$entry['filename']." (".$entry['status'].")
  • \n"; } if (!is_null($aErrorFilesInfo)) { $importlabelresourcesoutput .= "\t
    \n"; } } else { $importlabelresourcesoutput .= "
    ".$clang->gT("Error")."

    \n"; $importlabelresourcesoutput .= sprintf ($clang->gT("An error occurred uploading your file. This may be caused by incorrect permissions in your %s folder."),$basedestdir)."

    \n"; $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "\n"; return; } $importlabelresourcesoutput .= "\n"; $importlabelresourcesoutput .= "\n"; } if ($action == "templateupload") { $importtemplateoutput = "
    ".$clang->gT("Import template")."
    \n"; $importtemplateoutput .= "
    "; if ($demoModeOnly === true) { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= sprintf ($clang->gT("Demo mode: Uploading templates is disabled."),$basedestdir)."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "
    \n"; return; } require("classes/phpzip/phpzip.inc.php"); //$the_full_file_path = $tempdir . "/" . $_FILES['the_file']['name']; $zipfile=$_FILES['the_file']['tmp_name']; $z = new PHPZip(); // Create temporary directory // If dangerous content is unzipped // then no one will know the path $extractdir=tempdir($tempdir); $basedestdir = $usertemplaterootdir; $newdir=str_replace('.','',strip_ext(sanitize_paranoid_string($_FILES['the_file']['name']))); $destdir=$basedestdir.'/'.$newdir.'/'; if (!is_writeable($basedestdir)) { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= sprintf ($clang->gT("Incorrect permissions in your %s folder."),$basedestdir)."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "\n"; return; } if (!is_dir($destdir)) { mkdir($destdir); } else { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= sprintf ($clang->gT("Template '%s' does already exist."),$newdir)."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "\n"; return; } $aImportedFilesInfo=array(); $aErrorFilesInfo=array(); if (is_file($zipfile)) { $importtemplateoutput .= "
    ".$clang->gT("Success")."

    \n"; $importtemplateoutput .= $clang->gT("File upload succeeded.")."

    \n"; $importtemplateoutput .= $clang->gT("Reading file..")."

    \n"; if ($z->extract($extractdir,$zipfile) != 'OK') { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= $clang->gT("This file is not a valid ZIP file archive. Import failed.")."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "\n"; return; } $ErrorListHeader = ""; $ImportListHeader = ""; // now read tempdir and copy authorized files only $dh = opendir($extractdir); while($direntry = readdir($dh)) { if (($direntry!=".")&&($direntry!="..")) { if (is_file($extractdir."/".$direntry)) { // is a file $extfile = substr(strrchr($direntry, '.'),1); if (!(stripos(','.$allowedresourcesuploads.',',','.$extfile.',') === false)) { //Extension allowed if (!copy($extractdir."/".$direntry, $destdir.$direntry)) { $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Copy failed") ); unlink($extractdir."/".$direntry); } else { $aImportedFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("OK") ); unlink($extractdir."/".$direntry); } } else { // Extension forbidden $aErrorFilesInfo[]=Array( "filename" => $direntry, "status" => $clang->gT("Error")." (".$clang->gT("Forbidden Extension").")" ); unlink($extractdir."/".$direntry); } } // end if is_file } // end if ! . or .. } // end while read dir //Delete the temporary file unlink($zipfile); closedir($dh); //Delete temporary folder rmdir($extractdir); // display summary $okfiles = 0; $errfiles= 0; if (count($aErrorFilesInfo)==0 && count($aImportedFilesInfo)>0) { $status=$clang->gT("Success"); $statusClass='successheader'; $okfiles = count($aImportedFilesInfo); $ImportListHeader .= "
    ".$clang->gT("Imported Files List").":
    \n"; } elseif (count($aErrorFilesInfo)==0 && count($aImportedFilesInfo)==0) { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= $clang->gT("This ZIP archive contains no valid template files. Import failed.")."

    \n"; $importtemplateoutput .= $clang->gT("Remember that we do not support subdirectories in ZIP archives.")."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "\n"; return; } elseif (count($aErrorFilesInfo)>0 && count($aImportedFilesInfo)>0) { $status=$clang->gT("Partial"); $statusClass='partialheader'; $okfiles = count($aImportedFilesInfo); $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
    ".$clang->gT("Error Files List").":
    \n"; $ImportListHeader .= "
    ".$clang->gT("Imported Files List").":
    \n"; } else { $status=$clang->gT("Error"); $statusClass='warningheader'; $errfiles = count($aErrorFilesInfo); $ErrorListHeader .= "
    ".$clang->gT("Error Files List").":
    \n"; } $importtemplateoutput .= "".$clang->gT("Imported template files for")." $lid

    \n"; $importtemplateoutput .= "
    ".$status."

    \n"; $importtemplateoutput .= "".$clang->gT("Resources Import Summary")."
    \n"; $importtemplateoutput .= "".$clang->gT("Total Imported files").": $okfiles
    \n"; $importtemplateoutput .= "".$clang->gT("Total Errors").": $errfiles
    \n"; $importtemplateoutput .= $ImportListHeader; foreach ($aImportedFilesInfo as $entry) { $importtemplateoutput .= "\t
  • ".$clang->gT("File").": ".$entry["filename"]."
  • \n"; } if (!is_null($aImportedFilesInfo)) { $importtemplateoutput .= "\t
    \n"; } $importtemplateoutput .= $ErrorListHeader; foreach ($aErrorFilesInfo as $entry) { $importtemplateoutput .= "\t
  • ".$clang->gT("File").": ".$entry['filename']." (".$entry['status'].")
  • \n"; } if (!is_null($aErrorFilesInfo)) { $importtemplateoutput .= "\t
    \n"; } } else { $importtemplateoutput .= "
    ".$clang->gT("Error")."

    \n"; $importtemplateoutput .= sprintf ($clang->gT("An error occurred uploading your file. This may be caused by incorrect permissions in your %s folder."),$basedestdir)."

    \n"; $importtemplateoutput .= "
    gT("Template Editor")."\"/>\n"; $importtemplateoutput .= "\n"; return; } $importtemplateoutput .= "\n"; $importtemplateoutput .= "\n"; } //--------------------- // Comes from http://fr2.php.net/tempnam function tempdir($dir, $prefix='', $mode=0700) { if (substr($dir, -1) != '/') $dir .= '/'; do { $path = $dir.$prefix.mt_rand(0, 9999999); } while (!mkdir($path, $mode)); return $path; } /** * Strips file extension * * @param string $name * @return string */ function strip_ext($name) { $ext = strrchr($name, '.'); if($ext !== false) { $name = substr($name, 0, -strlen($ext)); } return $name; } ?>