Weblication kann man auf allen Webspaces installieren welche Perl anbieten. Da Perl im Grunde genommen Standard ist, sind dies ideal Voraussetzung auch bei Shared Hosting Angeboten Weblication zum Einsatz zu bringen. Hin und wieder treten jedoch bei Shared Hosting Probleme auf, welche man bei einem eigenen Server nicht hätte.
So zum Beispiel auch im Falle von Hosteurope (imho ein super Hoster!). Hier wurden vor kurzem die Servereinstellungen geändert und es war einfach nicht mehr möglich über die Weblication Uploadfunktion Dateien hochzuladen. Bei Shared Hosting beißt man somit in den sauren Apfel, keine individuellen Servereinstellungen zu haben.
Eine Lösung musste also her. Und es wurde eine Lösung gefunden.
Ein eigenes Upload-Skript bietet die Möglichkeit selber zu definieren mit welchen Parametern eine Datei hochgeladen werden kann. Dieses muss nur in die Administrationsoberfläche von Weblication integriert werden. Wie man das macht ist in diesem Artikel über Plugins/Weblics erläutert.
Hat man nun den Eintrag im Administrationsmenü muss man nur noch das Script verlinken. Das schaut so aus:
<?php
require_once ($_SERVER["DOCUMENT_ROOT"]."/weblication/lib/WAPI/WAPI.inc");
require_once ($_SERVER["DOCUMENT_ROOT"]."/weblication/lib/WFRAMEWORK/wUserCur.php" );
/*
Anpassen der Navigation:
im Verzeichnis /weblication/wDefault/de.wLinksMenu.xml ergaenzen um:
<link caption="Dateiupload" url="/uploads/index.php" target="" icon=""/>
<link caption="Dateiupload-Verzeichnis" url="/cgi-bin/wDir.cgi?path=uploads/tmp/" target="" icon=""/>
*/
// Verzeichnis erstellen, falls es noch nicht existiert
@ mkdir("tmp");
// Fallunterscheidung: Rechte des Benutzers
if((wUserCur::wGetUserType() == 'admin') || (wIsInGroup("Upload"))){
if ( ! empty ( $_FILES['file']['name'] ) ) {
if ( move_uploaded_file ( $_FILES['file']['tmp_name'], 'tmp/'. $_FILES['file']['name'] ) ) {
echo '<b>Upload erfolgreich beendet!</b><br /><br />';
echo 'Die Datei steht Ihnen im Verzeichnis "tmp" zur Verfügung. Von dort können Sie die Datei in den Zielordner kopieren.';
} else {
echo '<b>Upload nicht möglich!</b>';
}
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="" />
<br />
<input type="submit" name="Abschicken" value="Upload beginnen" />
</form>
<?PHP
}
} else {
echo '<b>Sie haben keine ausreichende Berechtigung!</b>';
}
?>
Dieses Script einfach in eine vorhanden Datei zum Beispiel im Ordner “uploads” includen.