<?php
defined (
'main'
)
or
die
(
'no direct access'
);
$title
=
$allgAr
[
'title'
].
' :: Upload'
;
$hmenu
=
'Upload'
;
$design
=
new
design (
$title
,
$hmenu
);
$design
->header();
$uploadordner
=
"include/downs/uploads/"
;
$extlimit
=
"yes"
;
$limitedext
=
array
(
".gif"
,
".jpg"
,
".png"
,
".jpeg"
,
".bmp"
,
".JPG"
);
$sizelimit
=
"yes"
;
$sizebytes
=
"1000000"
;
$right
= -4;
function
dir_access(
$dir
,
$mode
=
'none'
){
switch
(
$mode
){
case
'none'
:
if
(
file_exists
(
$dir
.
'.htaccess'
)) {
$file
=
fopen
(
$dir
.
'.htaccess'
,
'r'
)
or
die
(
'Kann Datei .htaccess nicht öffnen'
);
$line
=
fread
(
$file
,1024);
fclose(
$file
);
if
(preg_match(
"/\+Indexes/"
,
$line
) == 1)
return
(TRUE);
else
return
(FALSE);
}
else
return
(FALSE);
break
;
case
'give'
:
$file
=
fopen
(
$dir
.
'.htaccess'
,
'w+'
)
or
die
(
'Kann Datei .htaccess nicht öffnen'
);
fwrite(
$file
,
"Options +Indexes\n"
);
fclose(
$file
);
break
;
case
'remove'
:
$file
=
fopen
(
$dir
.
'.htaccess'
,
'w+'
)
or
die
(
'Kann Datei .htaccess nicht öffnen'
);
fwrite(
$file
,
"Options -Indexes\n"
);
fclose(
$file
);
break
;
}
}
function
short_string(
$string
,
$len
=20)
{
if
(
strlen
(
$string
) <=
$len
)
return
$string
;
else
{
$len
=
floor
(
$len
/2);
$string
=
substr
(
$string
,0,
$len
-3).
'...'
.
substr
(
$string
,
$len
*-1);
return
$string
;
}
}
if
(loggedin() AND
$_SESSION
[
'authright'
] <=
$right
) {
$name
=
escapeshellcmd
(
$_SESSION
[
'authname'
]);
$uploadordner
.=
$name
.
'/'
;
if
(
file_exists
(
$uploadordner
) AND !
file_exists
(
$uploadordner
.
'.htaccess'
)) dir_access(
$uploadordner
,
'remove'
);
$server
=
'http://'
.
$_SERVER
[
'HTTP_HOST'
].
str_replace
(
'index.php'
,
''
,
$_SERVER
[
'PHP_SELF'
]);
if
(!
empty
(
$_FILES
[
'file'
][
'name'
])) {
if
(!
file_exists
(
$uploadordner
)) {
mkdir
(
$uploadordner
,0744)
or
die
(
'Konnte kein Verzeichnis erstellen'
);
dir_access(
$uploadordner
,
'remove'
);
}
if
((
$sizelimit
==
"yes"
) && (
$_FILES
[
'file'
][
'size'
] >
$sizebytes
)) {
echo
"Die Datei ist zu groß, sie darf maximal $sizebytes bytes sein."
;
}
$ext
=
strrchr
(
$_FILES
[
'file'
][
'name'
],
'.'
);
$fname
= escape(
$_FILES
[
'file'
][
'name'
],
'string'
);
$fname
=
str_replace
(
' '
,
''
,
$fname
);
if
((
$extlimit
==
"yes"
) && (!in_array(
$ext
,
$limitedext
))) {
echo
"Der Dateiname hat eine nicht erlaubte Endung."
;
}
elseif
(
file_exists
(
$uploadordner
.
$fname
)) {
echo
"Der Dateiname existiert bereits. Bitte ändere deinen Dateinamen und versuche es nochmal."
;
}
elseif
( move_uploaded_file(
$_FILES
[
'file'
][
'tmp_name'
],
$uploadordner
.
$fname
) ){
$link
=
$server
.
$uploadordner
.
$fname
;
echo
'<br />Link zu deiner Datei ist: <a href="'
.
$link
.
'">'
.short_string(
$link
,70).
'</a><br /><br />'
;
}
}
?>
<form name=
"mf"
action=
"index.php?upload"
method=
"post"
enctype=
"multipart/form-data"
style=
"border-style:dotted; border-width:medium; border"
>
<table>
<tr><td>Datei auswählen:</td><td><input type=
"file"
name=
"file"
value=
"durchsuchen"
></td></tr>
<tr><td><input type=
"submit"
name=
"senden"
value=
"Datei hochladen"
></td></tr>
</table>
</form><br />
<?
if
(
$menu
->getA(1) ==
'd'
) {
$files
= scandir(
$uploadordner
);
$filenr
=
$menu
->getE(1) + 3;
$del
= unlink(
$uploadordner
.
$files
[
$filenr
]);
if
(
$del
== TRUE)
echo
"Datei <b>{$files[$filenr]}</b> erfolgreich gelöscht<br />"
;
else
"Datei {$files[$menu->getE(1)]} konnte nicht gelöscht werden<br />"
;
}
if
(
$menu
->getA(1) ==
'c'
) {
dir_access(
$uploadordner
,(
$menu
->getE(1) == 0 ?
'give'
:
'remove'
));
}
if
(
file_exists
(
$uploadordner
)) {
$files
=
array_slice
(scandir(
$uploadordner
),3);
$dirvis
= (dir_access(
$uploadordner
) == TRUE ? 1 : 0);
echo
"<b>Dateien in deinem Verzeichnis <a href=\"$server$uploadordner\">"
.short_string(
$server
.
$uploadordner
,70)."</a>:</b>
Verzeichnis ist <a href=\
"?upload-c$dirvis\">"
.(
$dirvis
== 1 ?
''
:
'nicht'
)." sichtbar</a> für alle.<br />
<table width=\"100%\">
<tr
class
=\
"Chead\" align=\"center\"><th>Dateien</th><th width=\"70\">Größe</th><th width=\"50\">Löschen</th></tr>"
;
foreach
(
$files
as
$filenr
=>
$file
)
echo
"<tr class=\"Cnorm\"><td><a href=\"$server$uploadordner$file\">"
.short_string(
$file
,43).
"</a></td><td align=\"right\">"
.
round
(
filesize
(
$uploadordner
.
$file
)/1024,1).
"K</td><td align=\"center\"><a href=\"?upload-d$filenr\"><img src=\"include/images/icons/del.gif\" alt=\"Löschen\" border=\"0\" \></a>"
;
echo
"</table>"
;
}
else
echo
'Verzeichnis ist leer.<br />'
;
}
else
echo
'Diese Funktion steht für dich nicht zur Verfügung!<br />'
;
$design
->footer(); ?>