\n";
$importsurvresourcesoutput .= "
\n";
return;
}
if (!is_dir($destdir))
{
mkdir($destdir);
}
$aImportedFilesInfo=null;
$aErrorFilesInfo=null;
if (is_file($zipfile))
{
$importsurvresourcesoutput .= "".$clang->gT("Success")." \n";
$importsurvresourcesoutput .= $clang->gT("File upload succeeded.")." \n";
$importsurvresourcesoutput .= $clang->gT("Reading file..")." \n";
if ($z->extract($extractdir,$zipfile) != 'OK')
{
$importsurvresourcesoutput .= "".$clang->gT("Error")." \n";
$importsurvresourcesoutput .= $clang->gT("This file is not a valid ZIP file archive. Import failed.")." \n";
$importsurvresourcesoutput .= " \n";
$importsurvresourcesoutput .= " \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");
$color='green';
$okfiles = count($aImportedFilesInfo);
$ImportListHeader .= "".$clang->gT("Imported Files List").": \n";
}
elseif (is_null($aErrorFilesInfo) && is_null($aImportedFilesInfo))
{
$importsurvresourcesoutput .= "".$clang->gT("Error")." \n";
$importsurvresourcesoutput .= $clang->gT("This ZIP archive contains no valid Resources files. Import failed.")." \n";
$importsurvresourcesoutput .= $clang->gT("Remember that we do not support subdirectories in ZIP Archive.")." \n";
$importsurvresourcesoutput .= " \n";
$importsurvresourcesoutput .= " \n";
return;
}
elseif (!is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo))
{
$status=$clang->gT("Partial");
$color='orange';
$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");
$color='red';
$errfiles = count($aErrorFilesInfo);
$ErrorListHeader .= "".$clang->gT("Error Files List").": \n";
}
$importsurvresourcesoutput .= "".$clang->gT("Imported Resources for")." SID: $surveyid \n";
$importsurvresourcesoutput .= " \n".$status." \n";
$importsurvresourcesoutput .= "".$clang->gT("Resources Import Summary")." \n";
$importsurvresourcesoutput .= "".$clang->gT("Total Imported files").": $okfiles \n";
$importsurvresourcesoutput .= "".$clang->gT("Total Errors").": $errfiles \n";
$importsurvresourcesoutput .= $ImportListHeader;
foreach ($aImportedFilesInfo as $entry)
{
$importsurvresourcesoutput .= "\t".$clang->gT("File").": ".$entry["filename"]." \n";
}
$importsurvresourcesoutput .= "\t \n";
$importsurvresourcesoutput .= $ErrorListHeader;
foreach ($aErrorFilesInfo as $entry)
{
$importsurvresourcesoutput .= "\t".$clang->gT("File").": ".$entry['filename']." (".$entry['status'].") \n";
}
}
else
{
$importsurvresourcesoutput .= "".$clang->gT("Error")." \n";
$importsurvresourcesoutput .= sprintf ($clang->gT("An error occurred uploading your file. This may be caused by incorrect permissions in your %s folder."),$basedestdir)." \n";
$importsurvresourcesoutput .= " \n";
$importsurvresourcesoutput .= " \n";
return;
}
// Final Back not needed if files have been imported
// $importsurvresourcesoutput .= " \n";
$importsurvresourcesoutput .= " \n";
}
if ($action == "importlabelresources" && $lid)
{
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/";
$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");
$color='green';
$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 Archive.")." \n";
$importlabelresourcesoutput .= " \n";
$importlabelresourcesoutput .= " \n";
return;
}
elseif (!is_null($aErrorFilesInfo) && !is_null($aImportedFilesInfo))
{
$status=$clang->gT("Partial");
$color='orange';
$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");
$color='red';
$errfiles = count($aErrorFilesInfo);
$ErrorListHeader .= "".$clang->gT("Error Files List").": \n";
}
$importlabelresourcesoutput .= "".$clang->gT("Imported Resources for")." LID: $lid \n";
$importlabelresourcesoutput .= " \n".$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";
}
$importlabelresourcesoutput .= "\t \n";
$importlabelresourcesoutput .= $ErrorListHeader;
foreach ($aErrorFilesInfo as $entry)
{
$importlabelresourcesoutput .= "\t".$clang->gT("File").": ".$entry['filename']." (".$entry['status'].") \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";
}
//---------------------
// 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;
}
?>