Zum Inhalt springen

Datei Upload mit PHP


Empfohlene Beiträge

Hi

Ich habe hier ein recht seltsames Problem:

Ich habe mir einen PHP-Dateiupload geschrieben. Lokal mit meinem Apache läuft es ohne Probleme. Lasse ich nun gleiche Routine auf meinem Webserver von Purtec laufen kommt nach der Auswahl der Datei folgender Fehler:

Warning: Unable to open 'E:\\H-Anhaenger.jpg' for reading: No such file or directory in /homepages/3/d24358834/htdocs/usedDomains/Haengerzentrale.de/editPicture.php on line 20

Hierbei liegt bei mir auf E:\ das Bild H.Anhaenger.jpg

Warum kann er nicht darauf zugreifen ?

Hier der Code der HTML-Seite und der der PHP-Routine:


<form name="Bild_uploaden" method="post" action="editPicture.php">

<div align="center">

  <input type="hidden" name="haengerid" value="1">

  <table width="80%" border="0">

    <tr>

      <td width="31%">Bild auswählen</td>

      <td width="69%">

        <input type="file" name="imgfile">

        </font>

      </td>

    </tr>

  </table>

  <p>

    <input type="submit" name="upload" value="Upload">

  </p>

</div>

</form>

PHP

if (($REQUEST_METHOD == "POST") AND ($upload == "Upload")) {


    // Bild hochladen

    $uploaddir = "images/haenger/";

    if (!file_exists($uploaddir)) {

        mkdir($uploaddir, 0755);

    }

   $newFile = $uploaddir . $haengerid . substr($imgfile, -4);

   if (!copy($imgfile, "$newFile")) {

	echo "Pic not Uploaded";		

   } else echo "Pic uploaded";

    unlink ($imgfile);

} 

Was stimmt hier nicht ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Erdbeere,

schau mal hier (http://www.php.net/download-docs.php ) habe ich ein ganz gutes Tutorial (bzw. Hilfe) Kannst Du Dir runterladen ist auch auf Deutsch. Ich habe hier die Hilfe-Datei mir runtergeladen. Wenn DU da ml im Reiter "Suchen" upload einträgst bekommst Du einige gute Infos. Ich denke, das wird Dir sicherlich schon weiterhelfen.

Ich dachte, bevor ich Dir alles hier reinschreib sag ich dir die URL wo du das runterladen kannst.

Gruß Snopsy

Link zu diesem Kommentar
Auf anderen Seiten teilen

analog zum vorherigen posting.

<form name="Bild_uploaden" method="post" action="editPicture.php">

ÄNDERN ZU

<form name="Bild_uploaden" method="post" action="editPicture.php" enctype="multipart/form-data">

Der Browser legt dadurch eine lokale Kopie der Datei an, sendet diese und löscht sie wieder.

Zu Hause verwendest du das Orginal. Kann es sein das die Datei anschließend verschwunden ist?

$imgfile verdeutlicht den Unterschied.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hilfe, ich versuch das auch gerade, aber ich bin wohl zu blöd

Das ist mein Formular:


form name="form1" enctype="multipart/form-data" method=POST action="upload.php">


   Beschreibung: <br>

   <input type="text" name="Desc"><br>


   Version: <br>

   <input type="text" name="Version"><br>


  Datei:<br>

   <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="10000000">


   <input type="file" name="upload"><br>


   <input type="submit" value="Upload"><br>

</form>

Unter PHP versuche ich dann die Dateinamen auszulesen, um anschließend per copy die Datei in das richtige Verzeichnis zu packen:


echo $HTTP_POST_FILES['upload']['name']."<br>";
echo $HTTP_POST_FILES['upload']['type']."<br>";
echo $HTTP_POST_FILES['upload']['size']."<br>";
echo $HTTP_POST_FILES['upload']['tmp_name']."<br>";
[/PHP]

Leider bekomme ich da keine Werte geliefert! Auch $upload_name liefert nüscht. Nur $upload ist mit "c:\\xyxz.erw" belegt.

Wo ist mein Denkfehler, ich dreh hier gleich durch.... :confused::eek::confused:

Ach ja, der ganze Krams leigt auf nem Strato Server :(

Pta

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Jahre später...

So mal en Standartscript für alle: upload.php


<html>
<head>
<title>Datei-Upload by Akira</title>
</head>
<body text="#000000" bgcolor="#FFFFFF">

<!-- Formulardaten zur Auswahl der Datei und des sendens an den php-script Teil -->
<!-- upload Teil -->
<form action="upload.php"
method="post" enctype="multipart/form-data">
<p align="center"><input type="hidden" name="MAX_FILE_SIZE" value="9000000000">
<input type="file" name="dateiname"><br><br>
<input type="submit" value="Hochladen"></p>
</form>
<hr color="#800000">
<?php
/* !!!!!!!!!!!!!!!!!!!!!!Upload!!!!!!!!!!!!!!!!!!!!!!!!!! */
/* Deklaration der übergebenen Variablen */

@$dateiname = $_FILES[dateiname][name];
@$tmp_name = $_FILES[dateiname][tmp_name];

/* Abfrage ob die Eingabe leer ist*/

if (@$tmp_name == true) {

/* Abfrage der Variablen auf Größe usw. */

if (!isset($dateiname)) {exit;}
if(!is_uploaded_file($tmp_name)) {
echo 'Fehler!<br><ul>';
switch ($_FILES[dateiname][error]) {
case 1: echo "<li>Die Datei überschreitet die maximale Größe von 2 Megabytes."; break;
case 2: echo "<li>Die Datei überschreitet die maximale Größe von $_POST[MAX_FILE_SIZE] Bytes."; break;
case 3: echo "<li>Die Datei wurde nur teilweise übertragen."; break;
case 4: echo "<li>Sie haben vergessen, die zu überspielende Datei anzugeben."; break;
}
exit;
}

/* Angabe des Root Verzeichnisses auf dem Server */

$uploadname ="./Project/daten/pics/$dateiname";

/* Beginn des Dateiuploades und Ausgabe der Daten nochmal zum vergleich */

move_uploaded_file($tmp_name, $uploadname);
printf("<p align=center>Die Datei <b>%s</b> befindet sich auf dem Webserver im Ordner <b>%s</b>!<br>\n", @$_FILES[dateiname][name], @$uploadname);
printf("Sie ist <b>%s Bytes</b> groß und vom Typ <b>%s</b>.<br>\n", @$_FILES[dateiname][size], @$_FILES[dateiname][type]);

/* Ausgabe der Daten im Verzeichnis nochmal zum vergleich */

$uverz="../pics";
echo "<h2 align=center>Bisher hochgeladene Dateien</h2>";
$i=1;
$verzeichnis=opendir($uverz);

echo "<p align=center >";
while ($file = readdir($verzeichnis))
{
if(is_file($uverz."/".$file))
{
echo "$uverz/$file<br>\n";
$file=urlencode($file);
$i++;
}
}
closedir($verzeichnis);


}

/* Ausgabe der Abfrage wenn keine Datei ausgewählt wurde */

else
{
echo "<b><div align=center>!!! Keine Datei ausgewählt !!!</div></b>";
}



?>

</body>
</html>[/PHP]

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...