also folgendes Problem: ich hatte mal ein funktionierendes Upload-Skript was tadellos funktionierte.
Jetzt aber nicht mehr, und ich habe absolut keine Ahnung warum.
Vielleicht kann mir auch einer sagen, ob das Skript auf seinem Server funktioniert (bin selber bei square7).
(Ihr müsst dann nur noch dort wo das script liegt den Ordner "uploads" hinzufügen)
Es geht hierbei nicht um Design oder sonstiges, mein Wunsch ist es nur, das der Upload wieder funktioniert. In diesem Script funktioniert auch noch nicht alles, da es noch in Entwicklung ist.
Spoiler
<!DOCTYPE HTML>
<html lang="de">
<head>
<title>MediaStorage</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link href="../../Files/Favicons/MediaStorage.ico" rel="shortcut icon" type="image/x-icon">
<style type="text/css">
tr.onHover:hover{background-color:#ededed;}
</style>
<style>
legend
{
font-weight: bold;
color: #333;
}
#filedrag
{
display: none;
font-weight: bold;
text-align: center;
padding: 1em 0;
margin: 1em 0;
color: #555;
border: 2px dashed #555;
border-radius: 7px;
cursor: default;
}
#filedrag.hover
{
color: #f00;
border-color: #f00;
border-style: solid;
box-shadow: inset 0 3px 4px #888;
}
img
{
max-width: 100%;
}
pre
{
width: 95%;
height: 8em;
font-family: monospace;
font-size: 0.9em;
padding: 1px 2px;
margin: 0 0 1em auto;
border: 1px inset #666;
background-color: #eee;
overflow: auto;
}
#messages
{
padding: 0 10px;
margin: 1em 0;
border: 1px solid #999;
}
#progress p
{
display: block;
width: 100%;
padding: 2px 5px;
margin: 2px 0;
border: 1px inset #446;
border-radius: 5px;
background: #eee url("../DevCentre/Upload 3/progress.png") 100% 0 repeat-y;
}
#progress p.success
{
background: #0c0 none 0 0 no-repeat;
}
#progress p.failed
{
background: #c00 none 0 0 no-repeat;
}
</style>
</head>
<body>
<?php /*
if (!isset($_COOKIE['UserordnerMS']) || $_COOKIE['UserordnerMS'] == '')
{$Username = "";}
else
{$Userordner = $_COOKIE['UserordnerMS'];}*/
$Username = "Anddro";
$Userordner = "uploads/";
?>
<!-- Kopf -->
<table>
<tr>
<td style="width:50%;">
<a href="" class="Ueberschrift2">MediaStorage</a> (<a href="javascript:"
onClick="alert('\t\t\tChangelog\n\nVersion 2.0:\n\t* Eingabefelder erkennen Rechenoperatoren\n\t* Upload-Auswahl hinzugefügt\n\t* Codeoptimierungen (W3C-Standard)\n\nVersion 1.1:\n\t* Schriftart/-größe definiert (Arial, 12)\n\t* kleinere Kommastellenrundung (Speed)\n\t* Changelog eingefügt\n\nVersion 1.0:\n\t* Umrechnungen verfügbar\n\t* DSL-Auswahlfeld verfügbar\n\t* Speed-Test verfügbar\n\t* IP-Adresse wird angezeigt\n\nmehr Infos, siehe Quellcode\n\n\t© <?=date("Y")?> Anddro - All Rights Reserved.\n\t\t\twww.anddro.de.vu')"
>Version</a>: <span style="color:red;">2.0 pre-Beta 2</span>)
</td>
<td style="width:50%; text-align:right;">
<select size="1" id="OrdnerlisteAuswahl" onChange="OrdnerlisteAuswahl()">
<option value="" style="font-weight:bold">Eigene Dateien</option>
<option value="" style="font-weight:bold">Gemeinsame Dateien</option>
<option value="" style="font-weight:bold">Öffentliche Dateien</option>
<option value="" disabled>---</option>
<?php
function ordnerinhalt($folder='uploads') {
$content = "";
foreach(scandir($folder) as $file) {
if($file[0] != '.') { // Versteckte Dateien nicht anzeigen
if(is_dir($folder.'/'.$file)) {
$folderArray[] = $file;
} else {
$fileArray[] = $file;
}
}
}
// Erst die Ordner ausgeben
if(isset($folderArray)) {
foreach($folderArray as $row) {
$content .= '<option value="'.$folder.'/'.$row.'">'.$row.'</option>';
$content .= ordnerinhalt($folder.'/'.$row); // rekursive Funktion
}
}
return $content;
}
echo ordnerinhalt();
?>
<option value="" disabled>---</option>
<option value="Neu25423xlosuzy852156xjkfhf923a" style="color:#828282; font-style:italic;">Neuer Ordner</option>
<option value="Umbenennen25423xlosuzy852156xjkfhf923a" style="color:#828282; font-style:italic;">Ordner umbenennen</option>
<option value="Loeschen25423xlosuzy852156xjkfhf923a" style="color:#828282; font-style:italic;">Ordner löschen</option>
</select>
</td>
</tr>
</table>
<br>
<?php
/*
// Öffnet ein Unterverzeichnis mit dem Namen "daten"
$verzeichnis = openDir("../../Files/Uploads/MediaStorage/$Username/");
// Verzeichnis lesen
while ($file = readDir($verzeichnis)) {
// Höhere Verzeichnisse nicht anzeigen!
if ($file != "." && $file != "..") {
// Link erstellen
echo "<a href=\"../../Files/Uploads/MediaStorage/$Username/$file\">$file</a><br>\n";
}
}
// Verzeichnis schließen
closeDir($verzeichnis);
?>
<hr>
<br><br><br><br><br><br><br><br><br><br><br>
<?php
$buchstabe_alt = "";
$verzeichnis = openDir("../../Files/Uploads/MediaStorage/$Username/");
while ($file = readDir($verzeichnis)) {
if ($file != "." && $file != "..") {
$buchstabe = strtoUpper(substr($file, 0, 1));
if (!strstr($buchstabe_alt, $buchstabe)) {
$buchstabe_alt .= $buchstabe;
// Anfangsbuchstaben anzeigen
echo "<strong>" . $buchstabe . "</strong> <br>";
}
echo "<a href=\"../../Files/Uploads/MediaStorage/$Username/$file\">$file</a><br>\n";
}
}
closeDir($verzeichnis);
*/
?>
<script type="text/javascript">
function OrdnerlisteAuswahl() {
var OrdnerlisteAuswahl = document.getElementById('OrdnerlisteAuswahl').value;
if (OrdnerlisteAuswahl == "Neu25423xlosuzy852156xjkfhf923a"){
var Ueberschrift = "Name für den neuen Ordner eingeben!";
var newdir = prompt(Ueberschrift);
document.getElementById('newdir').value = newdir;
document.getElementById('operation').value = "newdir";
document.mediastorage.submit();
}
}
</script>
<script type="text/javascript">
function confirmRename(file, filename, filepath) {
var Ueberschrift = "Neuen Namen für die Datei \""+filename+"\" eingeben!";
var rename = prompt(Ueberschrift,filename);//man kann auch gleich bei Aufruf der Funktion Prompt, den eingegenen Wert einer Variablen zuweisen
document.getElementById('rename').value = rename;
document.getElementById('renameold').value = file;
document.getElementById('renamepath').value = filepath;
document.getElementById('operation').value = "rename";
document.mediastorage.submit();
}
</script>
<script type="text/javascript">
function confirmDelete(file, filename) {
if (confirm("Wollen Sie die folgende Datei wirklich endgültig löschen?\n"+filename+"")) {
document.getElementById('operation').value = "erase";
document.getElementById('erase').value = file;
document.mediastorage.submit();
}
else
alert('Die Datei wurde nicht gelöscht!');
}
</script>
<?php // Datei löschen
if ($_POST['operation'] == "erase")
{
$file = $_POST['erase'];
unlink("$file");
}
?>
<?php // Datei umbenennen
if ($_POST['operation'] == "rename")
{
$file1 = $_POST['rename'];
$file2 = $_POST['renameold'];
$file3 = $_POST['renamepath'];
$file4 = "$file2";
$file5 = "$file3$file1";
rename("$file4", "$file5");
}
?>
<?
if ($_POST['operation'] == "newdir") {
$Member = $_POST['newdir'];
$handle = opendir($Userordner);
if ($handle){
mkdir($Userordner."".$Member, 0777) or die("<script language=\"JavaScript\">alert('FEHLER! Ordner nicht erstellbar.\\n\\nMögliche Gründe für den Fehler:\\n\\t* unerlaubtes Zeichen verwendet\\n\\t* Ordner bereits vorhanden'); document.location.href=\"\";</script>");
chmod($Userordner."".$Member, 0777);
}else{
die("Ordner nicht vorhanden");
}
closedir($handle);
}
?>
<form name="mediastorage" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" id="operation" name="operation">
<input type="hidden" id="erase" name="erase">
<input type="hidden" id="rename" name="rename">
<input type="hidden" id="renameold" name="renameold">
<input type="hidden" id="renamepath" name="renamepath">
<input type="hidden" id="newdir" name="newdir">
</form>
<table>
<tr>
<td style="width:50%;">
<table>
<tr>
<td style="width:1px; white-space:nowrap;"></td>
<td><b>Dateiname</b></td>
<td style="width:50px; white-space:nowrap;"><b>Erw.</b></td>
<td style="width:60px; white-space:nowrap;"><b>Größe</b></td>
<td style="width:90px; white-space:nowrap;" title="Datum der letzten Dateiänderung (meist Zeit des Uploads)"><b>Datum</b></td>
<td colspan="2"></td>
</tr>
<?php
$ordner = "$Userordner"; //auch Pfade möglich ($ordner = "download/files";)
$alledateien = scandir($ordner);
natcasesort($alledateien);
foreach ($alledateien as $datei) {
$dateiinfo = pathinfo($ordner."/".$datei);
// $dateiinfo['filename'] = Dateiname ohne Dateiendung *erst mit PHP 5.2
// $dateiinfo['dirname'] = Verzeichnisname
// $dateiinfo['extension'] = Dateityp -/endung
// $dateiinfo['basename'] = voller Dateiname mit Dateiendung
// Größe ermitteln zur Ausgabe
$size = ceil(filesize($ordner."/".$datei)); // hier ists dann in Bytes
if($size < 1000000)
{
$size = number_format($size/1024, 0, ",", ".")." kB";
}
elseif($size < 1000000000)
{
$size = number_format($size/1048576, 1, ",", ".")." MB";
}
else
{
$size = number_format($size/1073741824, 1, ",", ".")." GB";
}
//1024 = kb | 1048576 = MB | 1073741824 = GB | 1099511627776 = TB
$unixTime = filemtime($ordner."/".$datei);
// verhindert Anzeige von "." und ".."
if ($datei != "." && $datei != ".." && is_dir($dateiinfo['dirname']."/".$dateiinfo['basename']) == "0" && $dateiinfo['basename'] != ".ftpquota") {
?>
<tr class="onHover">
<td style="width:1px; white-space:nowrap;"><?php $DateiIcon = $dateiinfo['extension']; $DateiIcon = "../../Files/MediaStorage/$DateiIcon.png"; if(file_exists($DateiIcon)){echo "<img src=\"$DateiIcon\" width=\"24px\" height=\"24px\">";} else {echo "<img src=\"../../Files/MediaStorage/blank.png\" width=\"24px\" height=\"24px\">";} ?> </td>
<td style="vertical-align:middle;"><a style="display:block;" target="Dateianzeige" href="<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>" title="<?php echo $dateiinfo['basename'];?>"><?php if(strlen($dateiinfo['filename']) >= 24) $dateiinfo['filename'] = substr($dateiinfo['filename'],0,24).' ...'; echo $dateiinfo['filename']; ?></a></td>
<td style="vertical-align:middle;"><?php echo $dateiinfo['extension']; ?></td>
<td style="vertical-align:middle; text-align:right;">[<?php echo $size; ?>]</td>
<td style="vertical-align:middle; text-align:right;" title="<?php $zeit = date("d.m.Y, h:m", $unixTime); echo $zeit; ?> Uhr"><?php $zeit = date("d.m.Y", $unixTime); echo $zeit; ?></td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:center;"> <a href="javascript:confirmRename('<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>', '<?php echo $dateiinfo['basename']; ?>', '<?php echo $dateiinfo['dirname']."/"; ?>')"><img src="../Files/Grafiken/Umbenennen.png" width="24px" height="24px" title="Datei umbenennen" alt="[€]"></a></td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:right;"> <a href="javascript:confirmDelete('<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>', '<?php echo $dateiinfo['basename']; ?>')"><img src="../Files/Grafiken/Loeschen.png" width="24px" height="24px" title="Datei löschen" alt="[X]"></a></td>
</tr>
<?php
};
};
?>
<tr>
<td colspan="7"><hr></td>
</tr>
<tr>
<td>
<?php
$menge = 0;
$dirsize = 0;
$verz = "$Userordner";
$dir = opendir($verz);
while (($file = readdir($dir))!==false) {
if ($file[0] <> '.') {
$menge++;
$dirsize = $dirsize + filesize($verz.$file);
}}
closedir($dir);
if($dirsize < 1000000)
{
$dirsize = number_format($dirsize/1024, 0, ",", ".")." kB";
}
elseif($dirsize < 1000000000)
{
$dirsize = number_format($dirsize/1048576, 1, ",", ".")." MB";
}
else
{
$dirsize = number_format($dirsize/1073741824, 1, ",", ".")." GB";
}
?></td>
<td colspan="2">Dieser Ordner enthält: <b><?php
$paths = array($Userordner);
$files = array();
foreach($paths as $path) {
$h = opendir($path);
while ($o = readdir($h)) {
if (!is_file($path.$o)) continue;
array_push($files, $o);
}
}
echo count($files);?> Dateien</b></td>
<td style="white-space:nowrap; text-align:right;" colspan="2"><b>[<?=$dirsize?>]</b></td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:right;">
<form action="http://127.0.0.1:9666/flash/add" target="hidden" method="post" name="JDonedir">
<input type="hidden" name="passwords" value="004865">
<input type="hidden" name="source" value="http://.....">
<input type="hidden" name="urls" value="<?php
$ordner = "$Userordner"; //auch Pfade möglich ($ordner = "download/files";)
$alledateien = scandir($ordner);
natcasesort($alledateien);
foreach ($alledateien as $datei) {
$dateiinfo = pathinfo($ordner."/".$datei);
if ($datei != "." && $datei != ".." && is_dir($dateiinfo['dirname']."/".$dateiinfo['basename']) == "0" && $dateiinfo['basename'] != ".ftpquota") {echo "http://collector.square7.ch/".$dateiinfo['dirname']."/".$dateiinfo['basename']; echo "\r\n";}
};?>"><a href="javascript:document.JDonedir.submit();"><img src="../Files/Grafiken/jDownloader.png" width="24px" height="24px" alt="(jD)" title="Alle Dateien aus diesem Ordner herunterladen"></a></form>
</td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:right;"><img src="../Files/Grafiken/Loeschen.png" width="24px" height="24px" alt="[X]" title="Alle Dateien aus diesem Ordner löschen"></td>
</tr>
<tr>
<td colspan="7"><hr><hr></td>
</tr>
<tr>
<td>
<?
$path = "$Userordner";
$i = 0;
$dir = opendir($path);
while(readdir ($dir))
{
if(!is_dir($path."/".$dir))
$i++;
};
closedir($dir);
?>
</td>
<td colspan="2">Alle Ordner enthalten: <b><?=$i?> Dateien</b></td>
<td style="white-space:nowrap; text-align:right;" colspan="2"><b>
[<?
function dir_size($dir, &$size, $recursive=TRUE)
{
$handle = @opendir($dir);
if(!$handle)
return false;
while ($file = @readdir ($handle))
{
if (eregi("^\.{1,2}$",$file))
{
continue;
}
if(!$recursive && $dir != $dir.$file."/")
{
if(is_dir($dir.$file))
continue;
}
if(is_dir($dir.$file))
{
dir_size($dir.$file."/", $size, $recursive);
}
else
{
$size += filesize($dir.$file);
}
}
@closedir($handle);
}
$size = 0;
dir_size("$Userordner", $size, TRUE);
if($size < 1000000)
{
$size = number_format($size/1024, 0, ",", ".")." kB";
}
elseif($size < 1000000000)
{
$size = number_format($size/1048576, 1, ",", ".")." MB";
}
else
{
$size = number_format($size/1073741824, 1, ",", ".")." GB";
}
echo $size;?>]
</b>
</td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:right;"><img src="../Files/Grafiken/jDownloader.png" width="24px" height="24px" alt="(jD)" title="Alle Dateien herunterladen"></td>
<td style="width:1px; white-space:nowrap; vertical-align:middle; text-align:right;"><img src="../Files/Grafiken/Loeschen.png" width="24px" height="24px" alt="[X]" title="Alle Dateien löschen"></td>
</tr>
</table>
</td>
<td style="width:50%; text-align:right;"><iframe src="MediaStorage/Dateianzeige.htm" name="Dateianzeige" style="width:495px; height:278px;"></iframe><br>
<form id="upload" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>HTML File Upload</legend>
<input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="209715200" /> <!-- max. 200MB (die Zahl ist in bytes) -->
<div>
<label for="fileselect">Files to upload:</label>
<input type="file" id="fileselect" name="fileselect[]" multiple="multiple" />
<div id="filedrag">or drop files here</div>
</div>
<div id="submitbutton">
<button type="submit">Upload Files</button>
</div>
</fieldset>
</form>
<div id="progress"></div>
<div id="messages"></div>
<script>
(function() {
// getElementById
function $id(id) {
return document.getElementById(id);
}
// output information
function Output(msg) {
var m = $id("messages");
m.innerHTML = msg + m.innerHTML;
}
// file drag hover
function FileDragHover(e) {
e.stopPropagation();
e.preventDefault();
e.target.className = (e.type == "dragover" ? "hover" : "");
}
// file selection
function FileSelectHandler(e) {
// cancel event and hover styling
FileDragHover(e);
// fetch FileList object
var files = e.target.files || e.dataTransfer.files;
// process all File objects
for (var i = 0, f; f = files[i]; i++) {
ParseFile(f);
UploadFile(f);
}
}
// output file information
function ParseFile(file) {
if (file.size <= $id("MAX_FILE_SIZE").value) {
Output(
"<p>File information: <strong>" + file.name +
"</strong> type: <strong>" + file.type +
"</strong> size: <strong>" + file.size +
"</strong> bytes</p>"
);
}
else {alert('Die folgende Datei ist leider zu groß und wurde nicht hinzugefügt:\n'+file.name+'\nEs sind nur maximal 200MB erlaubt!');}
}
// upload files
function UploadFile(file) {
// following line is not necessary: prevents running on SitePoint servers
if (location.host.indexOf("sitepointstatic") >= 0) return
var xhr = new XMLHttpRequest();
if (xhr.upload && file.size <= $id("MAX_FILE_SIZE").value) { // && file.type == "image/jpeg" rausgenommen
// create progress bar
var o = $id("progress");
var progress = o.appendChild(document.createElement("p"));
progress.appendChild(document.createTextNode("upload " + file.name));
// progress bar
xhr.upload.addEventListener("progress", function(e) {
var pc = parseInt(100 - (e.loaded / e.total * 100));
progress.style.backgroundPosition = pc + "% 0";
}, false);
// file received/failed
xhr.onreadystatechange = function(e) {
if (xhr.readyState == 4) {
progress.className = (xhr.status == 200 ? "success" : "failure");
}
};
// start upload
xhr.open("POST", $id("upload").action, true);
xhr.setRequestHeader("X_FILENAME", file.name);
xhr.send(file);
}
}
// initialize
function Init() {
var fileselect = $id("fileselect"),
filedrag = $id("filedrag"),
submitbutton = $id("submitbutton");
// file select
fileselect.addEventListener("change", FileSelectHandler, false);
// is XHR2 available?
var xhr = new XMLHttpRequest();
if (xhr.upload) {
// file drop
filedrag.addEventListener("dragover", FileDragHover, false);
filedrag.addEventListener("dragleave", FileDragHover, false);
filedrag.addEventListener("drop", FileSelectHandler, false);
filedrag.style.display = "block";
// remove submit button
submitbutton.style.display = "none";
}
}
// call initialization file
if (window.File && window.FileList && window.FileReader) {
Init();
}
})();
</script>
<?php
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
if ($fn && $Username == "Anddro") {
// AJAX call
file_put_contents(
'uploads/' . $fn,
file_get_contents('php://input')
);
exit();
}
if ($fn && $Username == "AlyxO") {
// AJAX call
file_put_contents(
'uploads/' . $fn,
file_get_contents('php://input')
);
exit();
}
?>
</td>
</tr>
</table>
<?php
/*
function ordnerinhalt($folder='../../Files/Uploads/MediaStorage/Anddro') {
$content = "";
foreach(scandir($folder) as $file) {
if($file[0] != '.') { // Versteckte Dateien nicht anzeigen
if(is_dir($folder.'/'.$file)) {
$folderArray[] = $file;
} else {
$fileArray[] = $file;
}
}
}
// Erst die Ordner ausgeben
if(isset($folderArray)) {
foreach($folderArray as $row) {
$content .= '<b>'.$row.'</b><br />';
$content .= '<div style="padding-left:10px;color:#afafaf" />'; //Unterordner nach Rechts einrücken
$content .= ordnerinhalt($folder.'/'.$row); // rekursive Funktion
$content .= '</div>';
}
}
// ...dann die Dateien ausgeben
if(isset($fileArray)) {
foreach($fileArray as $row) {
$content .= '<a href="'.$folder.'/'.$row.'">'.$row.'</a><br />'; //Dateien verlinken
}
}
// Rekursion ende
return $content;
}
echo ordnerinhalt();
*/
?>
<!--
Bugs:
*
-->
</body>
</html>
Ein weiteres komisches Verhalten was ich mal festgestellt habe: normalerweise um ein <div> einzublenden nutze ich:
document.getElementById("NeuladenMessage").style.display = "";
und plötzlich muss ich in der einen funktion aber
document.getElementById("NeuladenMessage").style.display = "block";
angeben, warum?Vielen Dank für eure Antworten schon mal!
Schöne Grüße
Anddro
PS: habe die Datei auch mal in den Anhang hochgeladen
Angehängte Datei(en)
-
MediaStorage.zip (6,71K)
Anzahl der Downloads: 135

Hilfe
Neues Thema
Antworten



Nach oben



