Source

RCircos / fileupload.php

<?php
error_reporting(0);
$username = $_POST['userID'];
if(is_dir("temp/" . $username) == false | $username == '') {
	echo "<script> window.alert(\"ID does not match any sessions\");
	if(get_cookie('rcircostoken') != '') {
		forgetCookie();
	}
	$('#start').css('display', 'none');";
	exit;
}
$outDir="temp/" . $username ."/";
	$illegal = array(':', '|','/', '\\', '(', ')', '~', "'", '"', "?", "#", "$", "%", "&", ",", "!", "@", "^", "*", ";", "[", "]", "{", "}", "<",">","+", "-", " ", "=");
if($_FILES["file1"]["tmp_name"]=='') {
	$file1 = '';
} else {
	$name = $_FILES["file1"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file1 = $outDir . $name;
	move_uploaded_file($_FILES["file1"]["tmp_name"], $file1);
}
if($_FILES["file2"]["tmp_name"]=='') {
	$file2 ='';
} else {
	$name = $_FILES["file2"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file2 = $outDir . $name;
	move_uploaded_file($_FILES["file2"]["tmp_name"], $file2);
}
if($_FILES["file3"]["tmp_name"]=='') {
	$file3 ='';
} else {
	$name = $_FILES["file3"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file3 = $outDir . $name;
	move_uploaded_file($_FILES["file3"]["tmp_name"], $file3);
}
if($_FILES["file4"]["tmp_name"]=='') {
	$file4='';
} else {
	$name = $_FILES["file4"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file4 = $outDir . $name;
	move_uploaded_file($_FILES["file4"]["tmp_name"], $file4);
}
if($_FILES["file5"]["tmp_name"]=='') {
	$file5='';
} else {
	$name = $_FILES["file5"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file5 = $outDir . $name;
	move_uploaded_file($_FILES["file5"]["tmp_name"], $file5);
}
if($_FILES["file6"]["tmp_name"]==''){
	$file6 = '';
} else {
	$name = $_FILES["file6"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file6 =$outDir . $name;
	move_uploaded_file($_FILES["file6"]["tmp_name"], $file6);
}
if($_FILES["file7"]["tmp_name"] =='') {
	$file7 = '';
} else {
	$name = $_FILES["file7"]["name"];
	foreach($illegal as $illchar) {
		$name = str_replace($illchar, 'R', $name);
	}
	$file7 = $outDir . $name;
	move_uploaded_file($_FILES["file7"]["tmp_name"], $file7);
}
$c = 0;
$images =  glob($outDir . 'hist/*'); 
usort($images, function($a, $b) {
	return filemtime($b) < filemtime($a);
});
$useFiles = $_POST['delList'];
$c = 0;
$geneFiles = array();
$linkFiles = array();
$heatmapFiles = array();
$histogramFiles = array();
$lineScatFiles = array();
$tileFiles = array();
$n1 = 0;
$files = glob($outDir . '*');
usort($files, function($a, $b) {
	return filemtime($b) < filemtime($a);
});
foreach ($files as $allfile1) {
	if(substr($allfile1, strlen($username) + 6) != 'hist' & substr($allfile1, strlen($username) + 6) != 'relations.txt' & substr($allfile1, strlen($username)+6, -6) != 'zzzzzzz' & substr($allfile1, strlen($username)+6, -6) != 'zzzzzz') {
		$n1 += 1;
	}
}
$n2 = 0;
foreach (glob($outDir . '/hist/*') as $allfile1) {
	$n2 += 1;
}
if($n1 > $n2) {
	$canvasNum = $n1;
} else {
	$canvasNum = $n2;
}
$rowNum = $canvasNum +1;
$canvasNum *= 80;
echo "<table id='fileManager' width=\"400\" align=\"center\" cellpadding='3' cellspacing='2' style='border: 1px solid #CCCCCC;background-color:#DEEBDC; '>
		<tr><td><input type='checkbox' id='toggle' checked onchange='Javascript:toggleCheckboxes()'></input></td><td>Toggle Selection</td></tr>
		<tr><td>&nbsp;</td><td>Filename</td><td>Date uploaded</td><td>Filesize (KB)</td><td rowspan=$rowNum><canvas width='300' height='$canvasNum' id='relationsCanvas'></canvas></td></tr>";
foreach ($files as $allfile1) {
	if(substr($allfile1, strlen($username) + 6) != 'hist' & substr($allfile1, strlen($username) + 6) != 'relations.txt' & substr($allfile1, strlen($username)+6, -6) != 'zzzzzzz' & substr($allfile1, strlen($username)+6, -6) != 'zzzzzz' & substr($allfile1, strlen($username) + 6) != 'logs') {
		$time = filemtime($allfile1);
		$class = substr($allfile1, 6 + strlen($username));
		$classExplode = explode(".", $class);
		$class = $classExplode[0];
		echo "<tr style='display: table-row'><td height='70' class='". $class ."'><input id='$allfile1' type='checkbox' class='". $class ."' value=" .  $allfile1. "
				name='delList[]' checked></input></td>";
		echo "<td class='". $class ."'>" . substr($allfile1, strlen($username) + 6) . "</td>";
		echo "<td class='". $class ."'>" .date(n, $time). "/". date(j, $time). "/". date(y,$time). "</td>";
		echo "<td id='".$class."' class='". $class ."'>" . round(filesize($allfile1)/1024, 1) . "</td>";
		if (empty($images[$c]) == false) {
			$imgClass = substr($images[$c], 11 + strlen($username));
			$imgExplode = explode(".", $imgClass);
			$imgClass = $imgExplode[0];
			if(substr($images[$c], -3) == 'pdf') {
				echo "<td></td><td><a id='$images[$c]' class='$imgClass' href='$images[$c]' target='_blank'>Download PDF</a></td><td height='70' class='". $imgClass ."'><input id='$c' type='checkbox' value=$images[$c] name='delimgList[]'checked onchange='Javascript:toggleRelationCheckboxes($c)'></input></td>";
			} else {
				echo "<td></td><td><a id='$images[$c]' class='$imgClass' href='$images[$c]' target='_blank'><img align='center' src='". $images[$c] ."' height='40' width='40'></a></td>
						<td height='70' class='". $imgClass ."'><input id='$c' type='checkbox' value=$images[$c] name='delimgList[]' checked onchange='Javascript:toggleRelationCheckboxes($c)'></input></td>";
			}
		}
		echo "</tr>";
		$q=FALSE;
		$fh = fopen($allfile1, 'r');
		if('txt' == substr($allfile1, -3)) {
			$data = fgetcsv($fh, "\t");
			$data2 = explode("\t", $data[0]);
			if($data2[3] == 'Gene') {
				$geneFiles[$c] = $allfile1;
			} elseif ($data2[3] == 'GeneName') {
				$heatmapFiles[$c] = $allfile1;
			} elseif ($data2[3] == 'Data') {
				$histogramFiles[$c] = $allfile1;
			} elseif ($data2[3] == 'num.mark') {
				$lineScatFiles[$c] = $allfile1;
			} elseif (empty($data2[3]) && $data2[0] == 'Chromosome') {
				$tileFiles[$c] = $allfile1;
			} elseif (substr($data2[3], 0, 11) == 'Chromosome.') {
				$linkFiles[$c] = $allfile1;
			}
		} else {
			$data = fgetcsv($fh, ",");
			if($data[3] == 'Gene') {
				$geneFiles[$c] = $allfile1;
			} elseif ($data[3] == 'GeneName') {
				$heatmapFiles[$c] = $allfile1;
			} elseif ($data[3] == 'Data') {
				$histogramFiles[$c] = $allfile1;
			} elseif ($data[3] == 'num.mark') {
				$lineScatFiles[$c] = $allfile1;
			} elseif (empty($data[3]) && $data[0] == 'Chromosome') {
				$tileFiles[$c] = $allfile1;
			} elseif (substr($data[3], 0, 11) == 'Chromosome.') {
				$linkFiles[$c] = $allfile1;
			}
		}
		$c++;
	} 
}
foreach($files as $allfile1) {
	if (substr($allfile1, strlen($username)+6, -6) == 'zzzzzzz' | substr($allfile1, strlen($username)+6, -6) == 'zzzzzz' | $allfile1 == 'hist') {
		if (empty($images[$c]) == false) {
			$imgClass = substr($images[$c], 11 + strlen($username));
			$imgExplode = explode(".", $imgClass);
			$imgClass = $imgExplode[0];
			if(substr($images[$c], -3) == 'pdf') {
				echo "<tr height='70'><td></td><td></td><td></td><td></td><td></td><td><a id='$images[$c]' class='$imgClass' href='$images[$c]' target='_blank'>Download PDF</a></td><td class='". $imgClass ."'><input id='$c' type='checkbox' value=$images[$c] name='delimgList[]' checked onchange='Javascript:toggleRelationCheckboxes($c)'></input></td></tr>";
			} else {
				echo "<tr height='70'><td></td><td></td><td></td><td></td><td></td><td>" . "<a id='$images[$c]' class='$imgClass' href='$images[$c]' target='_blank'><img align='center' src='". $images[$c] ."' height='40' width='40'></a></td><td class='". $imgClass ."'><input id='$c' type='checkbox' value=$images[$c] name='delimgList[]' checked onchange='Javascript:toggleRelationCheckboxes($c)'></input></td></tr>";
			}
		}
			$c++;
	}
}
$histScript = '';
foreach (glob($outDir . 'hist/*') as $allfile1) {
	$filename = substr($allfile1, strlen($username) + 11);
	$histScript .= "<option value='$allfile1'>$filename</option>";
}
echo "<tr><td colspan = 8 align = \"center\"><button id=\"deleteFiles\" type=\"button\" onclick=\"Javascript: $('#idForm').ajaxSubmit({url:'delFiles.php', type:'post', target: '#delete_div'});\">Delete checked files</button>";
echo "</table>";
if(empty($heatmapFiles)) {
	$heatmapScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$heatmapScript .= "<option value=''>No file</option>";
	foreach ($heatmapFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$heatmapScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
if(empty($histogramFiles)) {
	$histogramScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$histogramScript .= "<option value=''>No file</option>";
	foreach ($histogramFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$histogramScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
if(empty($lineScatFiles)) {
	$lineScatScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$lineScatScript .="<option value=''>No file</option>";
	foreach ($lineScatFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$lineScatScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
if(empty($tileFiles)) {
	$tileScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$tileScript .= "<option value=''>No file</option>";
	foreach ($tileFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$tileScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
if(empty($geneFiles)) {
	$geneScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$geneScript .= "<option value=''>No file</option>";
	foreach ($geneFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$geneScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
if(empty($linkFiles)) {
	$linkScript .= "<option value='' selected='selected'>No files available</option>";
} else {
	$linkScript .= "<option value=''>No file</option>";
	foreach ($linkFiles as $file) {
		if(in_array($file, $useFiles)) {
			$filename = substr($file, strlen($username) + 6);
			$linkScript .= "<option value='$file' selected='selected'>$filename</option>";
		}
	}
}
$script ="<script>var colorArray = new Array('rgba(20,83,154, .6)', 'rgba(154,110,9, .6)', 'rgba(29,110,17, .6)', 'rgba(100,20,162, .6)', 'rgba(0,0,0, .6)', 'rgba(100,0,0, .6)', 'rgba(168,168,8, .6)');
		var c = -1;
		$('#step2').css('display','table-row');
		$('#step3').css('display','table-row');
		var checkboxArray = new Array();";
if (is_file('temp/' . $username . '/relations.txt') == true) {
	$relations = file_get_contents('temp/' . $username . '/relations.txt');
	$relationsArray=explode("~", $relations);
	array_pop($relationsArray);
	foreach ($relationsArray as $relation) {
		$script .= $relation;
		$script .= "
				c++;
				checkboxArray[c] = relArray;
				if(c == 7) {
					c = 0;
				}
				var figPos = $('.' + jq(relArray[0])).offset();
				var len = relArray.length;
				var title = relArray[0] + ': ';
				for (var i= 1; i < len; i++) {
					if(i !== 1){
						title = title + ', ';
					}
					title = title + relArray[i];
					var filei = $('#' + jq(relArray[i]));
					var pos1 = filei.offset();
					DrawLine(pos1.left + filei.width(), pos1.top + filei.height()/2, figPos.left, figPos.top, colorArray[c]);
				}
				$('.' + jq(relArray[0])).prop('title', title);
				";
	}
}
$script .="	var scripts = new Array(\"$heatmapScript\", \"$histogramScript\", \"$lineScatScript\", \"$tileScript\");
		var username = document.getElementById('userID').value;
		dis = document.getElementById('user_div');
		dis.innerHTML =  username;
		$('#username').val(username);

	$(document).ready(function() {
		$(\"[name='ph1']\").html(\"<select name='track1' id='track1'>" .$heatmapScript . "\");
		$(\"[name='ph2']\").html(\"<select name='track2' id='track2'>" .$histogramScript . "\");
		$(\"[name='ph3']\").html(\"<select name='track3' id='track3'>" .$lineScatScript . "\");
		$(\"[name='ph4']\").html(\"<select name='track4' id='track4'>" .$lineScatScript . "\");
		$(\"[name='ph5']\").html(\"<select name='track5' id='track5'>" .$tileScript . "\");
		$(\"[name='phGene']\").html(\"<select name='geneLabel' id='geneLabel'>" .$geneScript . "\");
		$(\"[name='phLink']\").html(\"<select name='linkLines' id='linkLines'>" .$linkScript . "\"); ";
	if ($histScript != '') {
		$script .= "
		$(\"#history\").html(\"History:(month:day:hour:minute:second)<select name='historySelect' id='historySelect' onchange='Javascript: histUpdate();'><option value='none'>No option selected</option>" .$histScript . "<!-- hue -->\"); ";
	}
$script .= "		});
	function connectPlotType(num) {
	var trackType = 'trackType' + num;
	var trackPh = \"track\" + num;
	var doc = document.getElementById(trackType);
	var type = doc.options[doc.selectedIndex].value;
	if(type === 'Heatmap') {
		var i = 0;
	} else if(type === 'Histogram') {
		var i = 1;
	} else if(type === 'Line' | type === 'Scatter') {
		var i = 2;
	} else if(type === 'Tile') {
		var i = 3;
	}
	var newMenu = scripts[i];
	document.getElementById(trackPh).innerHTML = newMenu;
	}
	function toggleRelationCheckboxes(num) {
		var flag = document.getElementById('' + num).checked;
		var arr = checkboxArray[num];
		var form = document.getElementById('idForm');
    	var inputs = form.elements;
    	if(!inputs){
    	    return;
    	}
    	if(!inputs.length){
    	    inputs = new Array(inputs);        
    	}
    	for (var i = 0; i < inputs.length; i++) {
    		if (inputs[i].type == 'checkbox' && arr.indexOf(inputs[i].className) > -1 ) {  
				inputs[i].checked = flag;
      		}
    	}
	}</script>";
echo $script;
?>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.