Zum Inhalt springen

Probleme bei Upload Script


Empfohlene Beiträge

Hallo zusammen,

ich bin gerade dabei ein Upload Script auf meine Webseite einzubinden, ich hab Probleme mit dem Code. Ich will es nicht einfach reinkopieren sondern auch verstehen.

Bei dem Befehl: move_uploaded_file weiß ich nicht was ich bei dem Pfad angeben soll.

Hier ist das Script:


if ( isset ($_POST['upload']) )
{
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
//$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

if ($size > "20000000")
{
$err[] = "zu große datei !";
}

if(empty($err))
{
move_uploaded_file($tempname, "uploads/".$name);
echo "Datei erfolgreich hochgeladen!";
}
else
{
foreach($err as $error)
echo "$error";
}
}
[/PHP]

Vielen Dank für Antworten!

mfg jive

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mein Problem ist dass das Script nichts hochlädt weil es eine Fehlermeldung ausgibt. Es kommt folgende Fehlermeldung:

Warning: move_uploaded_file(mh/uploads/wdwad) [function.move-uploaded-file]: failed to open stream: No such file or directory in /opt/lampp/htdocs/user/mh/db_login/user_bereich.php on line 64

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php3ux50o' to 'mh/uploads/wdwad' in /opt/lampp/htdocs/user/mh/db_login/user_bereich.php on line 64

Ich will halt was uploaden und das tut nichts, ich bin nicht so das Ass in php aber ich versteh schon was im Script passiert, ich kann den Fehler nicht entziffern (zeile 64 ist wo der Befehl move_uploaded_file kommt).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei dir liegt die hochgeladene Datei unter /tmp/php3ux50o. Dass die Funktion move_uploaded_file fehlschlägt kann verschiedene Gründen haben. Der erste (und wahrscheinlichste) ist, dass das Zielverzeichnis nicht existiert. Ein anderer Grund wäre, dass es für den Webserver-User nicht schreibbar ist bzw. er keine Dateien anlegen darf.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ähm mal ne ganz allgemeine Frage, das Script soll die Funktion haben das ein User eine Datei auf den Webserver hochladen kann. Erfüllt das Script diese Funktion oder ist es nur zum verschieben da?

Bearbeitet von jive
Link zu diesem Kommentar
Auf anderen Seiten teilen

>Ich will es nicht einfach reinkopieren sondern auch verstehen.

Mit <form> hattest Du gestern doch schon in einem anderen Topic Vergnügen, heute die Auswertung per $_POST. Für mich sieht es eher aus, als würde von irgendwo herkopiert werden und das Forum soll es funktionstüchtig machen.

Auf eigenen Wunsch - selbst damit Auseinandersetzen was der Ausschnitt aus dem Script macht, ist nicht so schwer!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein ich will es auch nicht kopieren, die seite ist mein abschlussprojekt und ich muss sie ohne vorahnung von php selbst programmieren, wir dürfen fertige scripts verwenden aber müssen sie erklären können.

Niemand soll das Script für mich schreiben, ich kann per $_POST auswerten, ohne frage nur ich weiß nicht ob das Script meine Anforderungen (dokument hochladen) entspricht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein ich will es auch nicht kopieren, die seite ist mein abschlussprojekt und ich muss sie ohne vorahnung von php selbst programmieren, wir dürfen fertige scripts verwenden aber müssen sie erklären können.

Wie wärs wenn du bei einfachen DIngen in PHP anfängst da wie ich annehme du ja Anwendungsentwickler lernst wirst du ja Grundkenntnisse in der Programmierung haben. Von daher ein bischen in PHP einlesen und dann erklärt sich sowas von selbst. Wenn du hingegen keine Zeit mehr hast wegen Projekt zu knapp Kalkuliert + vorher nicht Informiert und Recherchiert dann bleibt dir nur der Weg den du bereits eingeschlagen hast vor. Schreib uns doch mal um welches Script es sich handelt wie du es eingebunden hast was du verändert hast oder was du bereits ausprobiert hast. So per Ferndiagnose sit das schon recht schwierig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

if ( isset ($_POST['upload']) ) 
{
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
//$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$folder = 'uploads/';

if ($size > "20000000")
{
echo "zu große datei !";
}
else
}
$error_count = count($file_error);
if($error_count > 0) {
for($i = 0; $i <= $error_count; ++$i) {
echo $_FILES[name ]['error'][$i];
}
} else {
if(move_uploaded_file($file_temp, 'uploads/' .$file_name.'')) {
echo '<h3>Upload Successful!</h3>';
} else {
echo '<h3>ERROR</h3>';
}
}

} else {
echo '<h3>No file has been selected.</h3>';
}
}
}

[/PHP]

So könnte es stimmen... Kanns leider gerade nicht Testen

Versuchs mal so....

Nicht perfekt, aber mir ist gerade etwas langweilig ^^

[b]anzeige.php[/b]

[PHP]
<h1>Dateien</h1>
<form enctype="multipart/form-data" action="[PFAD ZUR UPLOAD.PHP]" method="post">
Datei: <input type="file" name="file">
<input type="submit" value="Datei hochladen">
</form>

<?php
$verz="/";
$verzeichnis = openDir("uploads");
?>
<p>Verzeichnis <b><?PHP echo $verz; ?></b> enthält folgende Dateien:</p>
<ul>
<?PHP
while ($file = readDir($verzeichnis)) {
if ($file != "." && $file != ".."){
echo "<li><a href=\"uploads".$verz."/".$file."\">".$file."</a></li>";
}
}
closeDir($verzeichnis);
?>
</ul>

upload.php


<?php
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
if(copy($tempname, "uploads/".$name)) {
echo "Die Datei ".$name." wurde erfolgreich hochgeladen!";
}
else {
echo "Der Upload ist leider fehlgeschlagen.";
}
?>
[/PHP]

Ich nutze hier bewusst den Copy befehl, da dieser auch im Safe mode ohne probleme läuft, und die temps sich eh nicht lange halten!

[b]WICHTG:[/b]

die "[b]anzeige[/b].php" und "[b]upload[/b].php" sollten in dem gleichen ordner sein... zu den beiden Datein musst du logischerweise auch den Ordner [b]uploads [/b]in das verzeichniss packen

Bearbeitet von AsoraX
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstens habe ich das mit dem Ordner sogar extra nochmal dazu gepinnt, und soviel Hirn denke ich kann man erwarten ;)...

Was denn für rechte? Schreibrechte (CHMOD 777) gelden für Datein, und nicht für Ordner...

Wer seinen "uploads" ordner einen schreibschutz verpasst, über den brauchen wir garnicht reden!

---------------

[EDIT]

Unter aktueller. Xampp und Plesk getestet und zumindest bei meiner zweiten lösung..... es geht so, und das ohne den hauch einer Konfiguration

Kann dir aber auch gerne noch ein Script schreiben was dir erlaubt Ordner zu erstellen ;)

Bearbeitet von AsoraX
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...