• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Upload Formular mit Beschreibung der Datei und Name

Status
Für weitere Antworten geschlossen.

Furien

Mitglied
Hallo Community,
Ich wollte auf meiner Website ein Upload Formular einbauen, aber alles was ich bis jetzt benutzt habe war einfach schrott.
Das ging von Formularen, die gar nichts hochluden bis zu Formularen, bei denen man noch nicht einmal die Dateigröße einstellen kann.
Ich möchte ein Upload Formular, in dem man nur zip Datein, die höchstens 15kb haben hochladen kann.
Außerdem brauch ich ein Feld in dem man den Namen der Datei angibt, die im Archiv drinne ist und auch ein Feld für die Beschreibung.
Vielleicht gibt es ja ein Script, welches die Beschreibung und Namen als txt Datei auf den Server mitschickt?

Und dann noch eine Frage: Brauch der Ordner dann 777 Rechte oder nicht?

Naja,
auf jeden Fall bin ich bis jetzt noch nicht fündig geworden,
vielleicht könnt ihr mir ja helfen;Jump.
 
777 Rechte brauchst du nicht unbedingt. Überschreibe den Eigentümer des Ordners auf den Benutzer, den PHP Benutzt (bei mir 'www-data', ist aber je nach System unterschiedlich). Dann sollte schon 744 ausreichen.
Und btw das sind Oktalzahlen und stehen für die Rechte der Benutzergruppen
Die erste Zahl beschreibt die Rechte des Eigentümers, die zweite Zahl die der angehörigen Benutzergruppe und die dritte Zahl beschreibt die Rechte der anderen noch übrigen Benutzer. Die Zahlen setzen sich ganz einfach zusammen.
execute = 1
write = 2
read = 4
für Kombinationen der Rechte einfach addieren. Lesen und schreiben wäre also 4+2 = 6

Naja ich komm ins Schwafeln... ;)

Was erwartest du von uns? Einen Denkanstoß oder ein fertiges Formular.
Wenn letzteres dann poste bitte in der Jobbörse, wenn ersteres, wo sind deine Anfänge, deine Versuche, deine Initiative?
 
Ich hatte schon ein Skript, allerdings ohne Name und Beschreibung und es funktioniert nicht.

Hier die upload.html

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "[URL]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/URL]">
<html xmlns="[url=http://www.w3.org/1999/xhtml]XHTML namespace[/url]">

<head>
  <title>Upload</title>

</head>

<body>
<p class="header">Ladt dein Zip Archiv hoch!</p>
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="file" name="file"><br>
<input type="submit" value="hochladen">
</form>
</body>
</html>

hier die upload.php

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN">
<html>
 <head>
  <title>config</title>
 </head>
 <body>
<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($type != "zip" && $type != "zip") {
    $err[] = "nur zip datein dürfen hochgeladen werden.";
}
if($size > "15000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
}
if(empty($err)) {
    copy("$tempname", "$name");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
else {
    foreach($err as $error)
    echo "$error<br>";
}
?>
 </body>
</html>

Er gibt mir aber den Fehler aus:nur zip datein dürfen hochgeladen werden.

Aber warum?Ich lade doch eine Zip Datei hoch.
Und ich weiß eben auch nicht, wie ich das Namens und Beschreibungs feld realisieren soll:sad:.
 
In "type" steht nicht die Dateiendung sondern der Mime-Typ der Datei.
Bei zip müsste das
Code:
application/zip
sein, kann aber je nach server konfiguration abweichen.
 
Das funktioniert leider auch nicht :sad: ...

Hast du vielleicht eine Idee, wie man das Name bzw. Beschreibungs Feld realisieren kann?
 
den letzten 3 buchstaben einer dateiendung z.b. bei tag.gz ".gz" und bei .zip dann halt "zip" und dann schneidest du die letzten 3 zeichen des dateinamens ab mittels substr($dateiname, -3); und dann kontrollierst du ob die dateiendung in dem array ist ^^
 
Also um den genauen Typ herraus zu finden, ist doch easy.... gib doch einfach per echo mal den Typ aus, dann weißt Du es genau.

Beim Fileupload kannst Du in das Feld auch jedes andere Formularfeld einfügen, in Deinem Fall <text> oder <textarea>.

Gruß thuemmy
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben