php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 26.02.2009, 13:55  
Neuer Benutzer
 
Registriert seit: 03.02.2009
Beiträge: 19
stYle345 befindet sich auf einem aufstrebenden Ast
Standard FTP Upload so richtig?

Hey,

hab mal so zum Testen einen FTP Upload geschrieben..

habe 3 Dateien:

testen.html

PHP-Code:
<html>
<
head>
<
title>Hier kannst du auf deinen Ftp Server joinen</title>
</
head>
<
body>
<
form action="connectftp.php" method="post">
Hier deine Host-Adresse: <input name="host" type="text">
User: <input name="user" type="text">
Passwort: <input name="pass" type="password">
  <
input type="submit">
</
body>
</
html

connectftp.php

PHP-Code:
<html>
<?php
sleep
(2);

session_start();


$host $_POST["host"];   // Adresse des FTP-Servers, meistens localhost
$user $_POST["user"];  // Dein FTP Benutzername
$pass $_POST["pass"]; // Dein FTP Passwort

if (!isset($_SESSION['host']))
   {
   
$_SESSION['host'] = "$host";
   }
if (!isset(
$_SESSION['user']))
   {
   
$_SESSION['user'] = "$user";
   }
if (!isset(
$_SESSION['name']))
   {
   
$_SESSION['pass'] = "$pass";
   }

$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");


echo 
"Verbindung erfolgreich!"
?>
<head>
<title> FTP Verbindung ist erfolgreich hergestellt!</title>
</head>
<body>
<h2>Sie können nun eine Datei auf den FTP-Server laden.</h2><br>
<body bgcolor="#FFFFFF" text="#000000">
<form action="ftpbeispiel.php" enctype="multipart/form-data" method="POST">
 
Wählen Sie eine Datei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="lokale_datei" type="file"
size="50" maxlength="1024" accept="text/*">
<br>
Verzeichnis auf dem FTP-Server <br>
<input type="text" name="zieldatei">
<input type="submit" name="Abschicken"
    value="Abschicken">
</form>
<br>
</body>
</html>



und ftpupload.php

PHP-Code:
<?php

sleep
(2);

include (
connectftp.php);

$host $_SESSION["host"];   // Adresse des FTP-Servers, meistens localhost
$user $_SESSION["user"];  // Dein FTP Benutzername
$pass $_SESSION["pass"]; // Dein FTP Passwort


$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");

 
// überprüfung der Verbindung
if ((!$connection_id) || (!$con)) {
  echo 
"<H1>Ftp-Verbindung nicht hergestellt!<H1>";
  echo 
"<P>Verbindung mit FTP_Server als Benutzer $user nicht möglich!</P>";
  die;
} else {
  echo 
"<P>Verbunden mit ftp_server als Benutzer $user</P>";
}
// Hochladen der Datei
$upload ftp_put($connection_id$zieldatei$lokale_dateiFTP_ASCII);
 
// Upload-Status überprüfen
if (!$upload) {
  echo 
"<P>Ftp upload war fehlerhaft!</P>";
} else {
  echo 
"<P>Datei $slokale_datei auf $host als $zieldatei geschrieben</P>";
}
 
// Schließen der Verbindung
ftp_quit($connection_id);
?>

Muss in dieser Datei das hier weg ? :

$host = $_SESSION["host"]; // Adresse des FTP-Servers, meistens localhost
$user = $_SESSION["user"]; // Dein FTP Benutzername
$pass = $_SESSION["pass"]; // Dein FTP Passwort





wenn ich nach testen.html auf submit klicke loggt er zwar auf dem server ein aber gleich wieder aus

000007) 26.02.2009 13:48:29 - testuser (127.0.0.1)> 230 Logged on
(000007) 26.02.2009 13:48:29 - testuser (127.0.0.1)> disconnected.

naja und wenn ich dann eine datei auswähle und ein verzeichnis und dort dann auf submit klicke kommt logischerweiße

Keine Verbindung zum FTP-Server möglich.

könnt ihr mir vielleicht sagen, was ich falsch gemacht habe?

liebe grüße

Geändert von stYle345 (26.02.2009 um 14:00 Uhr).
stYle345 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.02.2009, 14:53  
Neuer Benutzer
 
Registriert seit: 08.11.2008
Beiträge: 4
heltonritter befindet sich auf einem aufstrebenden Ast
heltonritter eine Nachricht über MSN schicken
Standard

yes, when the end the execution of the script, the connection are be closed, and you use "ftp_quit($connection_id)", so is natural.

But, one question, bacause why "connectftp.php" submit to "ftpbeispiel.php" and not to "ftpupload.php" ?
heltonritter ist offline  
Alt 26.02.2009, 14:56  
Erfahrener Benutzer
 
Benutzerbild von JEGO
 
Registriert seit: 01.12.2003
Beiträge: 2.555
PHP-Kenntnisse:
Anfänger
JEGO wird schon bald berühmt werden
Standard

Zitat:
Zitat von heltonritter Beitrag anzeigen
yes, when the end the execution of the script, the connection are be closed, and you use "ftp_quit($connection_id)", so is natural.

But, one question, bacause why "connectftp.php" submit to "ftpbeispiel.php" and not to "ftpupload.php" ?

that is correct. Bad copy & paste!
__________________
Gruß JEGO

Ein PHP Script tut, was Du schreibst, nicht was Du willst.
JEGO ist offline  
Alt 26.02.2009, 16:25  
Neuer Benutzer
 
Registriert seit: 03.02.2009
Beiträge: 19
stYle345 befindet sich auf einem aufstrebenden Ast
Standard

hab das jetz geändert.

connectftp sieht so aus:

PHP-Code:
<html>
<?php
sleep
(2);

session_start();


$host $_POST["host"];   // Adresse des FTP-Servers, meistens localhost
$user $_POST["user"];  // Dein FTP Benutzername
$pass $_POST["pass"]; // Dein FTP Passwort

if (!isset($_SESSION['host']))
   {
   
$_SESSION['host'] = "$host";
   }
if (!isset(
$_SESSION['user']))
   {
   
$_SESSION['user'] = "$user";
   }
if (!isset(
$_SESSION['name']))
   {
   
$_SESSION['pass'] = "$pass";
   }

$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");

ftp_close ($con);
echo 
"Verbindung erfolgreich!"
?>
<head>
<title> FTP Verbindung ist erfolgreich hergestellt!</title>
</head>
<body>
<h2>Sie können nun eine Datei auf den FTP-Server laden.</h2><br>
<body bgcolor="#FFFFFF" text="#000000">
<form action="ftpupload.php" enctype="multipart/form-data" method="POST">
 
Wählen Sie eine Datei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="lokale_datei" type="file"
size="50" maxlength="1024" accept="text/*">
<br>
Verzeichnis auf dem FTP-Server <br>
<input type="text" name="zieldatei">
<input type="submit" name="Abschicken"
    value="Abschicken">
</form>
<br>
</body>
</html>


und ftpupload.php so:

PHP-Code:
<?php

sleep
(2);

include(
"connectftp.php");


$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");

 
// überprüfung der Verbindung
if ((!$connection_id) || (!$con)) {
  echo 
"<H1>Ftp-Verbindung nicht hergestellt!<H1>";
  echo 
"<P>Verbindung mit FTP_Server als Benutzer $user nicht möglich!</P>";
  die;
} else {
  echo 
"<P>Verbunden mit ftp_server als Benutzer $user</P>";
}
// Hochladen der Datei
$upload ftp_put($connection_id$zieldatei$lokale_dateiFTP_ASCII);
 
// Upload-Status überprüfen
if (!$upload) {
  echo 
"<P>Ftp upload war fehlerhaft!</P>";
} else {
  echo 
"<P>Datei $slokale_datei auf $host als $zieldatei geschrieben</P>";
}
 
// Schließen der Verbindung
ftp_quit($connection_id);
?>

wenn ich ich bei connectftp.php datei auswähle und ein verzeichnis und ich klicke auf submit geht er auf ftpupload.php und es kommt die fehlermeldung:


Keine Verbindung zum FTP-Server möglich


wieso? liegt es an der include("connectftp.php"); ?
stYle345 ist offline  
Alt 26.02.2009, 18:25  
Neuer Benutzer
 
Registriert seit: 08.11.2008
Beiträge: 4
heltonritter befindet sich auf einem aufstrebenden Ast
heltonritter eine Nachricht über MSN schicken
Standard

sorry english use, i'm learning german, but is not so easy...

see the idea of your files...

func_upload.php
PHP-Code:
<?php
/*
Crated at: 22/05/2008
Author: Helton Eduardo Ritter - heltonritter@gmail.com
Changed at: 26/02/2009 - english translate some words
////////////////////////////////////////////////////////////////////////////
// how  to use
$validos = array('gif','jpg','com','zip','doc','docx','mp3','css','txt','exe');

if($_FILES['file']['tmp_name'] != '')
 {
    echo upload("file", <= name of tghe form file field
            15000, <= max KB size
            0, <= min size (in KB)
            "127.0.0.1", <= FTP servher (IP or name)
            "helton", <= ftp user
            "senha", <= ftp password
            $validos, <= array with the valid extensions of acepted files
            "/teste/ftp_upload"); <= directory to write file on servher (ftp directory)
 }
*/

function upload($form_field,
                
$tam_max,
                
$tam_min,
                
$ftp_server,
                
$ftp_user,
                
$ftp_passwd,
                
$acept_files,
                
$ftp_folder)
{
    
$conn = @ftp_connect($ftp_server);
    if(!
$conn)
        return 
"ERROR: on connect to FTP servher";

    
$login = @ftp_login($conn,$ftp_user,$ftp_passwd);
    if(!
$login)
        return 
"ERROR: on login with informated user and password";

    
$original_name_file $_FILES[$form_field]['name'];

    
$e explode('.',$original_name_file);
    
$cnt count($e);
    
$ext $e[$cnt-1];
    if(!
in_array($ext,$acept_files))
        return 
"ERROR: File type not acepted";

    
// *1024 porque o size é em bytes por padrão
    
if($_FILES[$form_field]['size'] < ($tam_min*1024) or $_FILES[$form_field]['size'] > ($tam_max*1024))
    {
        @
ftp_close($conn);
        return 
"ERROR: No valid size";
    }
    
    
// copia por ftp psra a pasta definitiva
    
$put_file ftp_put($conn,$ftp_folder.'/'.$_FILES[$form_field]['name'],$_FILES[$form_field]['tmp_name'],FTP_ASCII);
    if(!
$put_file)
        return 
"ERROR: On put file on FTP servher";
    
    @
ftp_close($conn);

    return 
'ok';

}
// fim da função de upload

?>
the form page to upload

upload_form.php
PHP-Code:
<html>
<head>
<title> FTP Verbindung ist erfolgreich hergestellt!</title>
</head>
<body>
<h2>Sie können nun eine Datei auf den FTP-Server laden.</h2><br>
<body bgcolor="#FFFFFF" text="#000000">
<form action="upload_form.php" enctype="multipart/form-data" method="POST">
 
Wählen Sie eine Datei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="lokale_datei" type="file"
size="50" maxlength="1024" accept="text/*">
<br>
Verzeichnis auf dem FTP-Server <br>
<input type="text" name="zieldatei">
<input type="submit" name="Abschicken"
    value="Abschicken">
</form>
<?php
// copy file to server
if($_FILES['lokale_datei']['name']!='' and $_POST['zieldatei']!= '')
{
    require(
"func_upload.php");
    
    
$valid_types = array('gif','jpg','com','zip','doc','docx','mp3','css','txt','pdf');
    
    
upload("lokale_datei"
            
15000
            
0
            
"127.0.0.1",
            
"user"
            
"password",
            
$valid_types,
            
$_POST['zieldatei']); 

}
?>
<br>
</body>
</html>
This help?

In my machine work wery well...

Ha, that is isnpirated at: :: PHP Magazine ::

in "Upload seguro de arquivos usando FTP verificando v
heltonritter ist offline  
Alt 26.02.2009, 23:02  
Neuer Benutzer
 
Registriert seit: 03.02.2009
Beiträge: 19
stYle345 befindet sich auf einem aufstrebenden Ast
Standard

ne ich habe einfach das problem, dass er den ftp_put befehl nicht ausführt.

habe die drei dateien ein bisschen gefixt


testen.html
PHP-Code:
<html>
<
head>
<
title>Hier kannst du auf deinen Ftp Server joinen</title>
</
head>
<
body>
<
form action="connectftp.php" method="post">
Hier deine Host-Adresse: <input name="host" type="text">
User: <input name="user" type="text">
Passwort: <input name="pass" type="password">
  <
input type="submit">
</
body>
</
html


connectftp.php

PHP-Code:
<html>
<?php
sleep
(2);
session_start();


$host $_POST["host"];   // Adresse des FTP-Servers, meistens localhost
$user $_POST["user"];  // Dein FTP Benutzername
$pass $_POST["pass"]; // Dein FTP Passwort


if (!isset($_SESSION['host']))
   {
   
$_SESSION['host'] = "$host";
   }
if (!isset(
$_SESSION['user']))
   {
   
$_SESSION['user'] = "$user";
   }
if (!isset(
$_SESSION['name']))
   {
   
$_SESSION['pass'] = "$pass";
   }

$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");

ftp_close ($con);
echo 
"Verbindung erfolgreich!"
?>
<head>
<title> FTP Verbindung ist erfolgreich hergestellt!</title>
</head>
<body>
<h2>Sie können nun eine Datei auf den FTP-Server laden.</h2><br>
<body bgcolor="#FFFFFF" text="#000000">
<form action="ftpupload.php" enctype="multipart/form-data" method="post">
 
Wählen Sie eine Datei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="lokale_datei" type="file" accept="text/*">
<br>
Verzeichnis auf dem FTP-Server<br>
<input type="text" name="zieldatei"><br>
<input type="submit" name="Abschicken"
    value="Abschicken">
</form>
<br>
</body>
</html>

ftpupload.php

PHP-Code:
<?php
sleep
(1);
session_start(); 

$host $_SESSION["host"];   // Adresse des FTP- Servers
$user $_SESSION["user"];  // Ihr FTP Benutzername
$pass $_SESSION["pass"]; // Ihr FTP Passwort

$lokaledatei $_POST["lokaledatei"]; // Die hochzuladene Datei 
$zieldatei $_POST["zieldatei"]; // Verzeichnis auf FTP


$connection_id ftp_connect($host);

$con ftp_login ($connection_id$user$pass) or die ("Keine Verbindung zum FTP-Server möglich");

echo 
"<P>Verbunden mit FTP-Server: $host als Benutzer: $user</P>";

// Hochladen der datei

$upload ftp_put($connection_id$zieldatei$lokaledateiFTP_BINARY) or die ("FTP Upload war nicht erfolgreich!");
 
echo 
"<P>Die Datei $lokaledatei wurde auf $host als $zieldatei geschrieben</P>";
 
ftp_quit($connection_id);

?>



so wenn ich die logindaten in der testen.html datei reinschreib, führt die connectftp.php den login durch.

so sieht es im ftp aus:

(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.27 beta
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220-FTP-Connection successfully.
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 220 Welcome! Visit Willkommen beim -=[TtS]=-|ThE LiMiT iS NoThInG
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> USER Benni
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> 331 Password required for benni
(00002 26.02.2009 22:59:05 - (not logged in) (127.0.0.1)> PASS *******
(00002 26.02.2009 22:59:05 - benni (127.0.0.1)> 230 Logged on
(00002 26.02.2009 22:59:05 - benni (127.0.0.1)> disconnected.


nachdem ich dann eine datei ausgewählt habe, kommt das im lokalen ftp:


(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.27 beta
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220-FTP-Connection successfully.
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 220 Welcome! Visit Willkommen beim -=[TtS]=-|ThE LiMiT iS NoThInG
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> USER Benni
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> 331 Password required for benni
(000029) 26.02.2009 22:59:10 - (not logged in) (127.0.0.1)> PASS *******
(000029) 26.02.2009 22:59:10 - benni (127.0.0.1)> 230 Logged on
(000029) 26.02.2009 22:59:10 - benni (127.0.0.1)> disconnected.



er loggt ein, aber führt diesen befehl:

$upload = ftp_put($connection_id, $zieldatei, $lokaledatei, FTP_BINARY) or die ("FTP Upload war nicht erfolgreich!");


nicht aus


wenn ich zum beispiel auf meinen ftp bei funpic( style345.st.funpic.de ) connecten will, führt er bis zur connectftp.php aus. er loggt sich ein. ich wähle jetzt eine datei aus und klicke auf abschicken. Danach kommt: Verbunden mit FTP-Server: style345.st.funpic.de als Benutzer: style345

FTP Upload war nicht erfolgreich!

jemand eine idee?
liebe grüße

Geändert von stYle345 (26.02.2009 um 23:36 Uhr).
stYle345 ist offline  
Alt 27.02.2009, 04:39  
Neuer Benutzer
 
Registriert seit: 08.11.2008
Beiträge: 4
heltonritter befindet sich auf einem aufstrebenden Ast
heltonritter eine Nachricht über MSN schicken
Standard

atention in your file: connectftp.php

the name of the file field is: "lokale_datei"
PHP-Code:
<input name="[b]lokale_datei[/b]" type="file" accept="text/*"
when you recive this value in ftpupload.php are 2 errors:
PHP-Code:
$lokaledatei $_POST["[b]lokaledatei[/b]"]; // Die hochzuladene Datei 
the name of the field is wrong.
to recive a value of file fild, you must use $_FILES, not $_POST.
Correct code:
$lokaledatei = $_FILES["lokale_datei"]["tmp_name"]; // Die hochzuladene Datei

more wrongs in this line:
$upload = ftp_put($connection_id, $zieldatei, $lokaledatei, FTP_BINARY) ....
in this situation in "zieldatei" you must enter the full directory and name of the file, for example
/mydir/myfile.txt

but in the field are only enter the directory name ... to solve that ...

PHP-Code:
$upload ftp_put($connection_id$zieldatei.'/'.$_FILES["lokale_datei"]["name"], $lokaledateiFTP_BINARY) .... 
so is right.

See my sended script.

Bye
heltonritter ist offline  
Alt 27.02.2009, 13:40  
Neuer Benutzer
 
Registriert seit: 03.02.2009
Beiträge: 19
stYle345 befindet sich auf einem aufstrebenden Ast
Standard

hey habe das gerade geändert und alles funktioniert. lag wohl an dem POST befehl da.

danke dir

liebe grüße
stYle345 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild beim Upload (FTP) verkleinern hallojo PHP Tipps 2009 4 22.02.2009 15:36
[Erledigt] Datei Upload Prüfung auf wav / mp3 mastertnt PHP Tipps 2009 4 15.02.2009 20:05
Scriptsuche FTP upload über php PhilipKupsik Scriptbörse 44 03.01.2009 16:32
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
FTP Programm: "korrekter" Upload R4v3r PHP Tipps 2008 6 06.10.2008 11:32
Upload Script bleibt einfach stehen SniperWolf PHP Tipps 2008 4 19.09.2008 19:39
Upload Script andi PHP Tipps 2008 2 17.07.2008 22:43
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
Mediawiki: upload auch für zipdateien !? Alpha Centauri PHP-Fortgeschrittene 6 20.01.2006 08:46
FTP upload PHP Tipps 2005-2 2 17.08.2005 11:43
Ansichtsproblem beim Upload Off-Topic Diskussionen 2 17.04.2005 21:11
[Erledigt] &quot;The directory you set for upload work cannot be reache PHP Tipps 2005 5 07.02.2005 12:19
[Erledigt] Wie erstelle ich ein Upload Menü mit mehreren Menüpunkten ? PHP Tipps 2004 3 22.08.2004 14:19
[Erledigt] Php skript upload problem! PHP Tipps 2004 2 30.06.2004 00:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ftp upload test, php ftp upload, pdf hochladen ftp, ftp upload html, ftp upload php, php ftp upload status, html ftp upload, php ftp accept, ftp upload html code, type=\file\ size=\50\ maxlength=\1024\ accept=\text/, http://www.php.de/php-einsteiger/52294-ftp-upload-so-richtig.html, ftp upload php script, php richtig hochladen, mediawiki upload ftp, ftp upload testen, auf localhost mit ftp hochladen, html text ftp upload, upload auf ftp server html code, pdf hochladen mit ftp, ftp upload per html script

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum