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

Upload via FTP Formular

Status
Für weitere Antworten geschlossen.

zefug

Neues Mitglied
Hallo an alle,

ich kenne mich nicht sehr mit php aus, was auch der gund ist, warum ich eure Zeit stehle... . Meine Frage an euch ist, ob jemand ein Upload Formular hat, das mit hilfe von ftp auf meinen Server übertragen wird. Aber das Formular sollte 3 Funktionen haben:

1.) Es sollte eine Fortschrittsanzeige haben, oder eine Prozent anzeige (oder etwas ähnliches).

2.) Nach dem Upload soll zu einer weiteren Seite weitergeleitet werden.

3.) Die Dateien Größe sollte maximal 50 MB betragen.


Könnte mir vielleicht einer helfen ? Vielen, vielen Dank an euch im Voraus.
 
Zuletzt bearbeitet:
wenn du willst das es dir jemand amcht schreibs in die jobbörse...
wenn du wissen willst wie du selber einen upload machen kannst dann google doch mal nach "php upload"
 
Selb verständlich hab ich schon geschaut. Ich habe nur keine ahnung wie man diese 3 dinge festlegt :



<?php
$ftp_server = 'ftp.ulmerfeld.ul.funpic.de';
$ftp_user_name = 'ulmerfeld';
$ftp_user_pass = 'geheim';

$destination_file = $_FILES['userfile']['name'];
$uploaddir = '/var/www/uploads/';
$source_file = $uploaddir. $_FILES['userfile']['name'];

// Verbindungsaufbau
$conn_id = ftp_connect($ftp_server);

// Login mit Username und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Verbindung überprüfen
if( (!$conn_id) || (!$login_result) )
{
echo "Es konnte keine Verbindung hergestellt werden!";
exit;
}

else
{
echo "Verbindung hergestellt.";
}

// Datei hochladen
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// Upload überprüfen
if( !$upload )
{
echo "Upload ist fehlgeschlagen!";
}

else
{
echo "Datei $source_file wurde hochgeladen.";
}

// FTP Verbidung schließen
ftp_close($conn_id);
?>



Die Dazu passende html Datei:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title></title>
</head>
<body>
<form enctype="multipart/form-data" action="http://ulmerfeld-hausmening.piranho.de/upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
<b>File:</b> <input name="userfile" type="file" />
<input type="submit" value="Upload" />
</form>
</body>
</html>
 
1.) Es sollte eine Fortschrittsanzeige haben, oder eine Prozent anzeige (oder etwas ähnliches).

2.) Nach dem Upload soll zu einer weiteren Seite weitergeleitet werden.

3.) Die Dateien Größe sollte maximal 50 MB betragen, bitte.
 
Eine Fortschrittsanzeige ist mit einer synchronen Übertragung IMHO nicht möglich. Da müsste meiner Meinung nach Ajax her. Weil die Seite sich ja erst wieder aufbaut, wenn alles übertragen ist und der Server eine neue Seite zurück geliefert hat.

Eine Weiterleitung macht man mit dem PHP-Befehl header(). Bitte im Manual auf PHP: Hypertext Preprocessor nachsehen.

In diesem Script sind 30000000 Bytes als Maximalgröße eingetragen. Ob und unter welchen Umständen das so funktioniert, weiß ich nicht.
 
Poblem

Aus irgend einem Grund scheint der php Code nicht zu funktionieren. Kann ich auch den hier Verwenden ? :



<?php
define('ADMIN_USER','zefug');
define('ADMIN_PASSWORD','blabla');
define('FTP_HOST','000000');
define('FTP_USER','blabla');
define('FTP_PASSWORD','000000');
if ((!empty($_SERVER['PHP_AUTH_USER'])) && (!empty($_SERVER['PHP_AUTH_PW'])) && ($_SERVER['PHP_AUTH_USER']==ADMIN_USER) && ($_SERVER['PHP_AUTH_PW']==ADMIN_PASSWORD))
{
$adminuser=true;
}
else
{
$adminuser=false;
}
if (isset($_GET['login']))
{
if ($adminuser==true)
{
header('Location:'.$_SERVER['PHP_SELF']);
}
else
{
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate:Basic');
}
}
else
{
if ($adminuser==true)
{
echo '<html>';
echo '<head><title>FTP-Upload</title></head>';
echo '<body>';
if (isset($_POST['upload']))
{
if (($_FILES['uploadfile']['error']==0) && ($_FILES['uploadfile']['size']<50000) && (!empty($_FILES['uploadfile']['name'])))
{
require_once('ftpconnection.class.php');
$ftp=new ftpconnection(FTP_HOST,FTP_USER,FTP_PASSWORD);
if ($ftp->put($_FILES['uploadfile']['tmp_name'],$_FILES['uploadfile']['name']))
{
echo $_FILES['uploadfile']['name'].' wurde erfolgreich Hochgeladen<hr>';
}
else
{
echo $_FILES['uploadfile']['name'].' konnte nicht übertragen werden.<br>';
echo 'Bitte pobier es später nochmal<hr>';
}
unset($ftp);
}
else
{
echo $_FILES['uploadfile']['name'].' konnte nicht hochgeladen werden.<br>';
}
}
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">';
echo '<input type="file" name="uploadfile">';
echo '<br>';
echo '<input type="submit" name="upload" value="Datei Hochladen">';
echo '</form>';
echo '</body>';
echo '</html>';
}
else
{
header('Location:'.$_SERVER['PHP_SELF'].'?login');
}
}
?>
 
Pobleme

Ok, momentan such ich nur einen php der funktioniert. Ich finde aber keinen. Der Oben genannte Code funktioniert nicht. Ich habe sehr viele Codes von Google ausprobiert, aber keiner funktioniert. Kann mir einer weiterhelfen ?
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben