It looks like you're new here. If you want to get involved, click one of these buttons!
// Erlaubte Dateitypen
$allowedmimetypes = array("application/x-rar", "application/zip", "image/jpeg", "image/png", "audio/mpeg", "application/pdf", "video/x-msvideo");
// MIME Typ bestimmen
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$filemimetype = finfo_file($finfo, $tempFile);
finfo_close($finfo);
// Nur wenn MIME Typ erlaubt ist Datei in den Uploadordner verschieben
if (in_array($filemimetype, $allowedmimetypes)) {
move_uploaded_file($tempFile,$targetFile);
}
else {
// Q: Wie an Skript übergeben dass Fehler ausgegeben werden soll ?
// A: Per Javascript Dateiendung überprüfen als Workaround zusätzlich zu Backend MIME Typ Kontrolle
}
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php',
'cancelImg' : '/uploadify/cancel.png',
'folder' : '/Upload',
'auto' : true,
'multi' : true,
'displayData' : 'speed',
'sizeLimit' : 153600000, // 150 MB
'simUploadLimit' : 2,
'queueSizeLimit' : 30,
'removeCompleted': false,
'onSelect' : function(event,ID,fileObj) {
var fileName = fileObj.name; // Filename
var ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length); // Extract String after .
switch (ext) {
case 'jpg': case 'png': case 'rar': case 'zip': case 'mp3': case 'pdf': case 'avi': // Continue with allowed filetypes
break;
default: // Else Stop & Remove Upload from Queue
//alert('Dateityp ' + ext.toUpperCase() + ' zum Upload nicht freigegeben !');
if (fileName.length > 20) {
fileName = fileName.substr(0,20) + '...';
}
var byteSize = Math.round(fileObj.size / 1024 * 100) * .01;
var suffix = 'KB';
if (byteSize > 1000) {
byteSize = Math.round(byteSize *.001 * 100) * .01;
suffix = 'MB';
}
$('#file_uploadQueue').append('<div id="file_upload' + ID + '" class="uploadifyQueueItem uploadifyError"><div class="cancel"><a href="javascript:jQuery(\'#file_upload\').uploadifyCancel(\'' + ID + '\')"><img src="/uploadify/cancel.png" border="0"></a></div><span class="fileName">' + fileName + ' (' + byteSize + ' ' + suffix +') - Failed</span><div style="margin-top:5px;color:red">Dateityp ' + ext.toUpperCase() + ' zum Upload nicht freigegeben !</div></div>');
$jQuery("#uploadify").uploadifyCancel(ID);
break;
}
}
});
});
if (!empty($_FILES)) {
$tempfile = $_FILES['Filedata']['tmp_name'];
$targetpath = $targetfolder;
$returnfile = $_FILES['Filedata']['name'];
$file = $_FILES['Filedata']['name'];
$file = utf8_decode($file);
$file = preg_replace("[^a-zA-Z0-9_.-\[\]()]", "", strtr($file, "()áàâãäéèêëíìîïóòôõöúùûüçÁÀÂÃÄÉÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ% ", "[]aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC__"));
$file = strtolower($file);
$aux_targetfile = str_replace('//','/',$targetpath);
$targetfile = str_replace('//','/',$targetpath) . $file;
// check on filetype
$allowed = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif'
);
$size = getimagesize($tempfile);
$mime = $size['mime'];
if (!in_array($mime, $allowed)) {
$error = 666;
}
// check on extension
$allowed = array(
'.jpg',
'.jpeg',
'.gif',
'.png'
);
if (!in_array(strtolower(strrchr($returnfile,'.')), $allowed)) {
$error = 666;
}
if($error){
echo $error;
}else{
if(file_exists($targetfile)) {
while ($ok != true) {
if(file_exists($targetfile)) {
$ok = false;
$rand = rand(1000, 9999);
$targetfile = $aux_targetfile . $rand . '_' . $file;
} else {
$ok = true;
$file = $rand . '_' . $file;
}
}
}
move_uploaded_file($tempfile,$targetfile);
echo $imagefolder.$file;
}
}