Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Servus

Ich habe folgenden Code auf einem Windows Server entwickelt, dieser funktioniert aber nach dem Upload auf einen Linux Server nicht mehr.

Auf Linux läuft lampp von apachefriends

Auf Windows läuft wampp, wbenfalls von apachefriends.

Hier der Code:

Attachment wird vorher in einem file input Objekt(HTML) festgelegt.


if($attachment !="") // nur wenn eine Datei ausgewählt wurde geht es zum FTP Upload

{

// Nun folgt der FTP Upload der Datei

$connection_id = ftp_connect($C_FTP_HOST);

$login_result = ftp_login($connection_id,$C_FTP_USER,$C_FTP_PASSWORD);


if((!$connection_id) || (!$login_result))

{

    echo" FTP_Verbindung konnte nicht hergestellt werden!<br>";

    die; // Programmausführung beenden

}

else

{

    //echo"Verbindung mit dem FTP Server aufgebaut...<br><br>";

}


$dest_filenamearray = explode('\\',$attachment);

$zieldatei = array_pop ($dest_filenamearray);

$lokale_datei = $attachment;

$dateien = ftp_nlist($connection_id, '');

FOREACH($dateien as $r)

{

    if($r == $zieldatei)

      {

        echo "<b>FEHLER</b> die Datei <b>$r</b> besteht bereits - Ändern sie den Dateinamen und fügen Sie die<br> Datei erneut hinzu.</b><br><br>";

        die;

      }

}


$upload = ftp_put($connection_id, $zieldatei, $attachment, FTP_BINARY);


      if (!$upload)

      {

        echo"FTP Upload war fehlerhaft..";

      }

      else

      {

        echo"Sie haben folgende Datei erfolgreich hinzugefügt:$attachment <br>";

        $ftp_upload_success = 1;

     }

ftp_quit($connection_id);


//echo"<br>Die Verbindung mit dem FTP Server wurde beendet...<br>";

}

Bei derm Linux Server, kommt immer die Fehlermeldung: dass der FTP Upload nicht funtkioniert hat. Das Verzeichnis auslesen funktioniert aber.....

Ich würde mich über eine Antwort freuen

RAIN

Hallo!

Ich würde beim Linux-Script das Backslash '\' in folgender Zeile


$dest_filenamearray = explode('\',$attachment);
[/PHP]

in ein Slash '/'

[PHP]
$dest_filenamearray = explode('/',$attachment);

umändern. Dies ist nämlich in der UNIX-Welt der Verzeichnis-Trenner.

Gruß

Benjamin

P.S. komisch, er zeigt das Backslash nicht an :rolleyes:

Habe ich schon probier . funtkionert aber nicht - Da ja der Client Windows hat - und man da das \\ braucht!

MFG

RAIN

Morgen!

Wie erhälst du denn $attachment? Per HTTP-Upload?

$attachment erhalte ich über ein Formular...............

Was steht denn in $attachment drin (also nicht, was drin stehen soll, sondern was tatsächlich drin steht)?

Könnte es sein, das die register_globals in der php.ini auf off stehen und deswegen gar nichts in $attachment drin steht?

also, wenn du $attachment direkt über ein Formular erhälst, und in der Variablen nur der Dateiname einer Client-Datei steht, dann kann es kaum funktionieren. Dafür müsste der HTTP-Server (bzw. dein PHP-Interpreter) auf die Datei des Clients zugreifen und das geht nicht.

Wenn du es einem Seitenbesucher ermöglichen willst, eine Datei upzuloaden und per FTP zu verschicken, dann musst du dir IMHO das hier mal durchlesen und dann die temporäre Datei per FTP und vielleicht mit dem richtigen Dateinamen, den du dann auch mitgeschickt bekommst, weiterschicken.

mfg

Benjamin

Servus!

ICh habe nun folgendes Ausprobiert - Was auch nicht funtkioniert!!


Mit diesem Formular wählt man aus, welche Datei hinaufgeladen werden soll:


<form enctype="multipart/form-data" method="post" action="new_entry.php">

<input type="hidden" name="MAX_FILE_SIZE" value="30000">

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

<input type="submit" value="Fertig" name ="gesendet">  <input type="reset" value="Eingaben rücksetzen">



Mit folgendem Code verarbeite ich das Formular:

$uploaddir = 'htdocs/';


print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {

   print "Datei wurde erfolgreich hinzugefügt.<br>";

   print_r($_FILES);

}

 else {

   print "FEHLER! Datei konnte nicht hinzugefügt werden.<br>";

   print_r($_FILES);

}

Auf meinem lokalen WAMPP Server Funktioniert das Skript wunderbar. Wenn ich es jedoch am Linux

Server ausprobieren möchte - so bekomme ich immer die Fehlermeldungen:

Warning: move_uploaded_file(htdocs/model05.jpg): failed to open stream: No such file or directory in /opt/lampp/htdocs/new_entry.php on line 20

Warning: move_uploaded_file(): Unable to move '/tmp/phpchLLtn' to 'htdocs/model05.jpg' in /opt/lampp/htdocs/new_entry.php on line 20

FEHLER! Datei konnte nicht hinzugefügt werden.

(

[userfile] => Array

(

[name] => model05.jpg

[type] => image/pjpeg

[tmp_name] => /tmp/phpchLLtn

[error] => 0

=> 3469

)

Meine Frage ist nun, welche Änderungen, bzw Einstellungen ich beim Linux Server machen

muss, damit dieses Skript funktioniert.

ICh würde mich freuen wenn ihr mir Tipps gebt, um mein Problem zu lösen.

RAIN

Theoretisch schon denn htdocs sind chmod 777 gesetzt worden.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.