Dokumentation

Transcription

Dokumentation
Dokumentation HTTPUpload Applet 1.7
von Enrico Bär ( 03.09.2010 )
Dieses Applet dient zum verbesserten Upload von Dateien ins Internet. Es verhält sich identisch mit
dem Browser Upload von einem Formular. Die Upload-Methode dabei ist POST. Man kann mehrere
Dateien über eine Dialogbox auswählen und diese automatisch hochladen. Das Applet lädt dabei jede
Datei einzeln hoch, macht also kein Multiupload. Es bekommt für jede Datei die Bestätigung vom
Server. Alternativ kann seit Version 1.1 auch ein FTP-Upload genutzt werden. Der Modus wird über
den Parameter useFTP eingestellt. Beachten Sie, dass der Standardport 21 für FTP (z.B. in
Firmennetzen) meist nicht freigegeben ist. Mit Version 1.1 ist auch die Sprachunterstützung für
Deutsch und Englisch dazugekommen.
Zusätzlich gibt es noch spezielle Funktionen für Bilderuploads. Es ist eine Vorschau für JPEG und
PNG Dateien vorhanden. Für die gleichen Dateitypen können Bilder auch auf eine feste Größe
gebracht werden, bevor sie hochgeladen werden.
Folgende Parameter können dem Applet übergeben werden:
ISOLanguage (1.1)
Gibt die Sprache des Applets an. Derzeit gibt es Unterstützung für Deutsch(„de“) und Englisch („en“).
(String, Default „de“)
maxFiles
maximale Anzahl von Dateien in einem Uploadprozeß. Nur relevant bei limitedFiles TRUE.
(Integer, Default 50)
maxFilesWarning
Warnungstext bei Auswahl von mehr Dateien als in maxFiles angegeben. Nur relevant bei
limitedFiles TRUE.
(String, Default „Upload-Anzahl ist auf 50 beschränkt“ )
limitedFiles
Dateien auf eine Anzahl pro Uploadprozeß beschränken
(Boolean, Default FALSE)
UploadURL
Zielpfad vom Empfangsscript, genau wie im HTML das ACTION-Attribut
(String, z.B. „http://localhost/gal/javaupload.php“ oder „javaupload.php“ )
HTTPAuthUser(1.7)
Liegt das Empfangs-Script bzw. auch das Applet in einem gesicherten Bereich auf dem Server
(.htaccess-Methode), muss ein Benutzername und ein Passwort angegeben werden, damit der Upload
erfolgreich ausführbar ist.
(String, Default leer)
HTTPAuthPW(1.7)
Ist das Passwort für HTTPAuthUser. Nur relevant bei HTTPAuthUser.
(String, Default leer)
HTTPAuthPWCrypt(1.7)
Ist das Passwort für HTTPAuthUser in Base64-Format, so dass es nicht auf Anhieb erkennbar ist.
Benutzen Sie als Hilfe Base64-Encoder im Internet. Nur relevant bei HTTPAuthUser.
(String, Default leer)
FTPServer (1.1)
Bezeichnung des FTP-Servers (z.B. „www.kadiba.de“ ). Nur relevant bei useFTP TRUE.
(String, Default leer )
FTPPort (1.1)
Gibt den Port des FTP-Servers an. Nur relevant bei useFTP TRUE.
(Integer, Default 21)
FTPDirectory (1.1)
Gibt das Verzeichnis auf dem FTP-Server an. Falls das Verzeichnis nicht existiert, wird versucht es
anzulegen. Angaben wie „upload/pictures“ sollten auch funktionieren. Nur relevant bei useFTP
TRUE.
(String, Default „“)
FTPUser (1.1)
Gibt den Usernamen für den FTP-Account an und ist für das Login notwendig. Nur relevant bei
useFTP TRUE.
(String, Default „“)
FTPPW (1.1)
Gibt das Passwort für den FTP-Account an und ist für das Login notwendig. Nur relevant bei useFTP
TRUE.
(String, Default „“)
FTPPWCrypt(1.7)
Gibt das Passwort für den FTP-Account an und ist für das Login notwendig. Hier gibt es die
Möglichkeit, das Passwort Base64 zu verschlüsseln, damit es nicht sofort sichtbar ist.
Nur relevant bei useFTP TRUE.
(String, Default „“)
FTPPassivMode (1.1)
Gibt den FTP-Connection-Modus an (Passiv oder Aktiv). Nur relevant bei useFTP TRUE.
(Boolean, Default TRUE)
useFTP (1.1)
Bestimmt den Uploadmodus HTTP-Upload oder FTP-Upload.
(Boolean, Default FALSE)
FilterExtensions
Dateifilter für die Auswahl im Dateidialog. Nur relevant bei Filefilter TRUE.
(String, Default „jpg,jpeg,png,gif“)
Filefilter
Dateifilter aktivieren.
(Boolean, Default FALSE)
resizeImageWidth
Bildbreite für Verkleinerung bzw. Vergrößerung (Querformat). Nur relevant bei resizeImage TRUE.
(Integer, Default 500)
resizeImageHeight
Bildhöhe für Verkleinerung bzw. Vergrößerung (Hochformat). Nur relevant bei resizeImage TRUE.
(Integer, Default 500)
resizeQuality
JPEG-Bildqualität für das geänderte Bild. Nur relevant bei resizeImage TRUE.
(Integer, Default 82)
onlyMinResize
Bilder nur Verkleinern. Nur relevant bei resizeImage TRUE.
(Boolean, Default TRUE)
resizeImage
Größenänderung für Bilder aktivieren. WICHTIG: Wird die Größe tatsächlich geändert, entsteht
immer eine JPG-Datei, d.h. die Größenänderung beinhaltet ggf. auch eine Konvertierung. Folgende
Formate können konvertiert werden: GIF, JPG, PNG.
(Boolean, Default FALSE)
startScriptURL(1.3)
Ist eine URL angegeben wird vor dem Upload noch eine Webseite aufgerufen. So kann z.B. ein
serverseitiges Script angestartet werden. Mit Version (1.7) werden nun auch zusätzliche BenutzerUpload-Parameter mit der Post-Methode hochgeladen bzw. können im Script abgefragt werden. Auch
hier gilt ggf. die Authorisierung für gesicherte Webseiten.
(String, Default „“)
finalScriptURL(1.3)
Ist eine URL angegeben wird nach dem Upload noch eine Webseite aufgerufen. So kann z.B. ein
serverseitiges Script angestartet werden. Mit Version (1.7) werden nun auch zusätzliche BenutzerUpload-Parameter mit der Post-Methode hochgeladen bzw. können im Script abgefragt werden. Auch
hier gilt ggf. die Authorisierung für gesicherte Webseiten.
(String, Default „“)
finalBrowserURL(1.7)
Ist eine URL angegeben wird nach dem Upload noch die angegebene Webseite im Browser
aufgerufen. So kann im Anschluss nach dem erfolgreichen Upload die aktuelle Browser-Seite
gewechselt bzw. eine neue Browser-Seite geöffnet werden. Dazu ist eine Targetangabe wie im HTML
beim Tag <A> möglich. Getrennt werden die beiden Angaben durch ein Pipe-Zeichen „|“
(z.B.: „http://meine.domain/seite.php|_self“).
• „_blank“ - um den Verweis in einem neuen Fenster zu öffnen,
• „_self“ - um den Verweis im aktuellen Fenster zu öffnen,
• „_parent“ - um bei verschachtelten Framesets das aktuelle Frameset zu sprengen,
• „_top“ - um bei verschachtelten Framesets alle Framesets zu sprengen.
(String, Default „“, Default-Target „_self“)
cancelOnError(1.7)
Gibt es einen Fehler beim Upload, lief dieser bisher mit der nächsten Datei weiter. Mit dieser Option
kann der Upload vorzeitig abgebrochen werden. Dieser Abbruch gilt auch für das Start- und
Endscript. Zur Entscheidung wird zu technischen Fehlern (z.B. kein Netzwerk) auch der HTTPReturncode ausgewertet. Er muss 200-299 betragen, damit ggf. kein Abbruch stattfindet.
(Boolean, Default FALSE)
labelAddButton
Bezeichnung für den Hinzufügen-Button.
(String, Default „Hinzufügen“)
labelRemoveButton
Bezeichnung für den Entfernen-Button.
(String, Default „Entfernen“ )
labelUploadButton
Bezeichnung für den Upload-Button.
(String, Default „Hochladen“ )
labelCancelButton
Bezeichnung für den Abbrechen-Button
(String, Default „Abbrechen“ )
BackgroundColor
Hintergrundfarbe in HTML-Angabe.
(String, HEX-Wert, z.B. „CC0000“)
TextColor
Textfarbe in HTML-Angabe.
(String, HEX-Wert, z.B. „000000“)
StatusColor
Fensterfarbe in HTML-Angabe.
(String, HEX-Wert, z.B. „FFFFFF“)
LayoutType(1.4)
Typangabe des Layouts. Es sind derzeit zwei Layouts verfügbar. Zulässig sind die Ziffern 1 und 2.
Typ 1 (Standard)
(Integer, Default 1)
Typ 2
EXIFSupport(1.3)
Gibt an, ob vorhandene Exif-Daten bei einer Größenänderung übernommen werden sollen.
(Boolean, Default TRUE)
SignatureText(1.5)
Fügt eine Bildsignatur (Text) an gewünschter Position ein. Ist keine Signatur gewünscht, lassen Sie
den Parameter leer.
(String, Default „“)
SignatureFont(1.5)
Gibt die gewünschte Schriftart an. Diese Angabe setzt sich aus der Schriftart, dem Schrifttyp und der
Schriftgröße zusammen („Schriftart-Schrifttyp-Schriftgrösse“).
ACHTUNG: Die Schriftart muss auch in der Schriftgrösse auf dem System vorhanden sein!
Schriftart: z.B. „Arial“
Schrifttypen: "PLAIN", "BOLD", "BOLDITALIC" oder "ITALIC"
Schriftgrösse: 18
Hier ein Beispiel: „Arial-BOLD-24“. Kann diese Schriftart nicht angelegt werden, gibt es ein Fallback
zur Default-Schriftart. Nur relevant bei einer Eingabe von SignatureText.
(String, Default: Standard-Systemschrift)
SignatureColor(1.5)
Signaturfarbe in HTML-Angabe. Nur relevant bei einer Eingabe von SignatureText.
(String, HEX-Wert, z.B. „FFFFFF“, Default: weiß)
SignaturePosition(1.5)
Gibt die Bildposition der Signatur an. Folgende Angaben sind möglich:
Bildmitte
• „CENTER“ :
• „TOP_LEFT“:
Oben links
• „TOP_CENTER“:
Oben zentriert
• „TOP_RIGHT“:
Oben rechts
• „BOTTOM_LEFT“: Unten links
• „BOTTOM_CENTER“: Unten zentriert
• „BOTTOM_RIGHT“: Unten rechts
Nur relevant bei einer Eingabe von SignatureText.
(String, Default „BOTTOM_LEFT“)
RecursivSelection(1.6)
Diese Flag ermöglicht komplette Verzeichniss-Strukturen zu selektieren. In Verbindung mit dem
Parameter transmitDirectory kann diese Verzeichniss-Struktur auf der Serverseite rekonstruiert
werden.
(Boolean, Default false)
transmitDirectory(1.6)
Ist dieses Flag true, wird der relative Verzeichnissname (basierend auf dem Auswahlverzeichnis) auf
den Server übertragen. Im FTP-Modus wird die Verzeichnss-Struktur direkt angelegt. Im HTTPUpload-Modus wird das jeweilige Verzeichnis als HTTP-Upload-Parameter übertragen. Der
Parametername ist CLIENT_DIRECTORY. Ein entgegennehmendes Script kann somit auch das
mitgelieferte Verzeichnis anlegen und die Datei dorthin kopieren.
(Boolean, Default false)
leaveFilesInList(1.7)
Mit diesem Parameter geben Sie an, ob die hochgeladenen Dateien aus der Uploadliste gelöscht
werden oder nicht. Dies kann z.B. nützlich sein, wenn ein zweiter Download ansteht und die
ausgewählten Dateien in der Liste stehenbleiben sollen.
(Boolean, Default false)
Sound(1.7)
Wenn der Soundparameter true ist, wird am Ende des Uploads ein akustischer Hinweis abgespielt.
(Boolean, Default false)
Funktionen die mit JavaScript aufrufbar sind:
Oft benötigt man zusätzliche Variablen, die man mit jedem HTTP-Upload mitgeben muß, damit das
Empfangsscript ordentlich funktionieren kann. Dazu können folgende Funktionen hilfreich sein. Es
gibt lediglich zwei Wege. Zum Einen kann ein Formular mit Hidden-Feldern (max. 20) aufgebaut
werden, die dann nach Funktionsaufruf vom Applet einmalig ausgelesen werden, zum Anderen
können die Uploadparameter (unbeschränkt) direkt mit Javascript gesetzt werden. Diese Funktionen
sind für eine Nutzung von FTP unrelevant.
Uploadvariablen
readHTMLUploadParameters()
Es ist möglich ein HTML Formular mit dem Namen „HTMLUpload“ im FORM-Tag auf der AppletSeite anzulegen. Darin können Hidden-Variablen mit folgendem Format anglegt werden, um
Variablen mit dem Upload mitzusenden. Beispiel:
<applet code="...>.......</applet>
<form name="HTMLUpload">
<input type="hidden" name="attribut0" value="id=5">
<input type="hidden" name="attribut1" value="user=V.001">
</form>
<script type="text/javascript">
readHTMLUploadParameters();
<script>
Es werden die Variablen id und user mit den Werten 5 und V.001 für jeden Upload mitgesendet. Im
Formular sind Variablennamen von attribut0 bis attribut19 erlaubt.
setHTMLUploadParameter( String Variable, String Wert )
Hier können dem Upload eine oder mehrere Variablen inklusive Werten mitgegeben werden.
Beispiel: setHTMLUploadParameter( „galerie_id“, „5“ );
clearHTMLUploadParameter()
Alle zusätzlichen Uploadparameter löschen.
removeHTMLUploadParameter( String Variable )
Einen bestimmten Uploadparameter mit dem Wert löschen.
showHTMLUploadParameter()(1.6)
Alle Upload-Parameter in der Java-Konsole anzeigen
Controlfunktionen:
start()
Applet starten.
stop()
Applet stoppen.
init()
Applet neu initialisieren (Parameter neu auslesen).
setParameter( String Parameter, String Wert ) (1.1)
Sie können alle Appletparameter, die sie mit HTML an das Applet übergeben, ebenfalls mit
JavaScript nachträglich setzen bzw. verändern. Diese Funktion ist nicht mit der Funktion
setHTMLUploadParameter( String Variable, String Wert ) zu verwechseln.
getParameter( String Parameter )(1.7)
Gibt den aktuellen Parameter-Wert zurück. Das kann vom DefaultParameter abweichen, da jeder
Parameter über JavaScript und setParameter() verändert werden kann.
getDefaultParameter( String Parameter )(1.7)
Gibt den über HTML gesetzten Standard-Wert zurück
showParameter()(1.6)
Alle aktuellen Appletparameter in der Java-Konsole anzeigen.
activateButtonRemove()
Ausgewählte Datei entfernen. Entfernen-Button auslösen.
activateButtonCancel()
Upload unterbrechen. Abbrechen-Button auslösen.
setButtonsEnable( Boolean Wert )(1.7)
Hiermit ist es dem Anwender erlaubt, den Upload über JavaScript zu verhindern. Es setzt die Buttons
auf aktiv bzw. inaktiv. (z.B. „document.meinAppletName.setButtonsEnable(false)“ )
startTransfer()(1.7)
Startet den Upload (wie Button „Hochladen“).
stopTransfer()(1.7)
Stoppt den Upload (wie Button „Abbrechen“).
Sonstiges
setStatus( String Text )
Der Text erscheint im Statusfenster.
getAppletInfo()
Zeigt die Appletinformationen an.
refresh()
Die Anzeige vom Applet wird refresht.
isRunning()
Gibt den aktuellen Status des Hochladens zurück.
TRUE=Upload läuft,
FALSE=Upload ist beendet
hasUploadError()(1.7)
Gibt den Gesamt-Return-Code des Hochladens zurück. Dieser ist während des Uploades immer
FALSE und sollte erst nach dem Hochladen aufgerufen werden.
TRUE=Es gab beim Hochladen keine Fehler
FALSE=Es gab beim Hochladen diverse Fehler
hasCancel(1.7)
Gibt an, ob der Upload abgebrochen wurde. Das kann entweder durch den Abbrechen-Button oder
durch den JavaScript-Aufruf der Methode stopTransfer() passieren.
So sieht die Einbindung in HTML aus
<applet code="org.kadiba.httpupload.HTTPUpload"
archive="applet/HTTPUpload.jar"
mayscript="mayscript"
width="600"
height="350"
name="HTTPUploadApplet"
alt="HTTPUpload.jar by www.kadiba.de">
<param name="ISOLanguage"
value="de">
<param name="maxFiles"
value="100">
<param name="maxFilesWarning"
value="Die Anzahl pro Upload ist auf 100 begrenzt">
<param name="UploadURL"
value="java_upload.php">
<param name="HTTPAuthUser"
value="testuser">
<param name="HTTPAuthPW "
value="kennwort">
<param name="startScriptURL"
value="begin.php">
<param name="finalScriptURL"
value="end.php">
<param name="finalBrowserURL"
value="naechste_seite.php">
<param name="cancelOnError"
value="true">
<param name="FTPServer"
value="your.ftpserver.com">
<param name="FTPPort"
value="21">
<param name="FTPDirectory"
value="uploaddirectory/pictures">
<param name="FTPUser"
value="testuser">
<param name="FTPPW"
value="testpw">
<param name="useFTP"
value="false">
<param name="FTPPassivMode"
value="true">
<param name="FilterExtensions"
value="jpg,jpeg,png">
<param name="resizeImageWidth"
value="500">
<param name="resizeImageHeight" value="500">
<param name="onlyMinResize"
value="true">
<param name="resizeQuality"
value="100">
<param name="limitedFiles"
value="true">
<param name="Filefilter"
value="true">
<param name="resizeImage"
value="true">
<param name="RecursivSelection" value="true">
<param name="transmitDirectory" value="true">
<param name="EXIFSupport"
value="true">
<param name="labelAddButton"
value="Hinzufügen">
<param name="labelRemoveButton" value="Entfernen">
<param name="labelUploadButton" value="Hochladen">
<param name="labelCancelButton" value="Abbrechen">
<param name="BackgroundColor"
value="CC0000">
<param name="TextColor"
value="000000">
<param name="StatusColor"
value="000000">
<param name="LayoutType"
value="1">
<param name="SignatureText"
value="www.kadiba.de">
<param name="SignatureFont"
value="Arial-BOLD-24">
<param name="SignatureColor"
value="FFFFFF">
<param name="SignaturePosition" value="BOTTOM_LEFT">
Ihr Browser unterstützt keine Applets. Bitte installieren Sie sich aktuelle JDK
von sun. Den Download gibts auf <a href="http://www.java.com/">java.com</a>
</applet>
Achten Sie auf das Schlüsselwort mayscript, falls Sie mit Javascript Funktionen vom Applet aufrufen
wollen.
Viel Spaß
Ihr Kadiba-Team www.kadiba.de