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

Datei auf Server speichern

Status
Für weitere Antworten geschlossen.

shade

Neues Mitglied
Datei auf Server speichern (PHP)

Nabend,
Ich möchte Daten auf meinen Webspace in einen bestimmten Ordner speichern. Hab jetzt schon ein Button mit dem man auf dem Rechner die Datei auswählen kann und dann der Name in nem Editfeld angezeigt wird. Nun brauch in nur noch nen Button der das dann in nem bestimmten Ordner speichert. Kann ich das so mit HTML machen oder muss mal wieder wohl oder übel PHP ran!? Danke...

Code:
  <div id="R_Upload" >
    <p><strong>Uploads    </strong></p>
    <p>Datei Hochladen</p>
    <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
      <label>
        <input type="file" name="upload" id="upload" />
      </label>
    </form>
  </div>
 
Zuletzt bearbeitet:
Und wie kann ich dem dann sagen das der die in dem Ordern speichern soll!?
Das kann ich da irgendwie noch nicht richtig rauslesen...
 
So weiter gegoogled, ein sehr ordentliches Tutorial gefunden.
Es funktioniert auch (halbwegs), nur wenn ich die Datei ausgewählt habe
und dann auf Upload klicke, dauert es zwar kurz, aber es kommt keine Meldung
"Ihre Datei xxx wurde hochgeladen. Sie können nun weitere Dateien hochladen."
Es ist auch keine Datei auf meinen Server vorhanden. Wo liegt nur der Fehler...

PHP:
 <?php
ini_set ('error_reporting', E_ALL);
$pfad = '/html/upload/';  // Hier den Ordner relativ zum Uploadscrip, in die die Dateien hochgeladen werden angeben.
$dateiupload_erfolgreich = false;


function CheckFilename($dateiname,$pfad)
    {
    global $fehler; $fehler = array();
    if (file_exists($pfad.$dateiname)) array_push($fehler, 'Es existiert bereits eine Datei mit dem Namen!'); //Prüfung ob der Dateiname der hochzuladenden Datei schon existiert. Wenn Dateien mit gleichen namen überschreiben werden sollen diese Zeile bitte löschen.
    if(!in_array(strtolower(substr($dateiname,-4)),array('.jpg','jpeg','.png','.gif'))) array_push($fehler, 'Bitte nur Bilder mit der Endung .jpg, .jpeg, .png oder .gif hochladen!'); // In das array erlaubte Dateiformate eintragen und gegebenenfals die Fehlermeldung anpassen. Bitte diese Zeile aus Sicherheitsgründen auf gar keinen Fall löschen!
    if(substr_count($dateiname, '.')>1) array_push($fehler, 'Es ist nicht erlaubt eine Datei mit mehrere Punkten im Dateinamen hochzuladen!');                      
    return (sizeof($fehler)) ? false : $dateiname;
}


function CheckFile($dateiname_temp,$dateifehler,$dateigroesse)
    {
    global $fehler; $fehler = array();
         switch ($dateifehler) {
    case '1': $dateifehler_erklaerung ='Die hochgeladene Datei überschreitet die in der Anweisung upload_max_filesize in php.ini festgelegte Größe.'; break;
    case '2': $dateifehler_erklaerung = 'Die hochgeladene Datei überschreitet die in dem HTML Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.'; break;
    case '3': $dateifehler_erklaerung = 'Die Datei wurde nur teilweise hochgeladen.'; break;
    case '4': $dateifehler_erklaerung = 'Es wurde keine Datei hochgeladen.'; break;
    }
    if($dateifehler) array_push($fehler, $dateifehler_erklaerung);
    if ($dateigroesse < 1) array_push($fehler, 'Sie haben versucht keine oder eine lehre Datei hochzuladen.');
    if ($dateigroesse > 2000000) array_push($fehler, 'Die hochzuladende Datei darf max. 2MB groß sein.'); // Hier die max. größe der Hochzuladenden Dtaie angeben und gegebenenfals die Fehlermeldung anpassen. Wenn die Dateigröße nicht weiter begrenzt werden soll diese Zeile bitte löschen.
    return (sizeof($fehler)) ? false : $dateiname_temp;
}


if(!empty($_POST['Send']))
{
    if ($dateiname_temp = CheckFile($_FILES['Datei']['tmp_name'],$_FILES['Datei']['error'],$_FILES['Datei']['size']))
    {
        if ($dateiname = CheckFilename($_FILES['Datei']['name'],$pfad))
        {
            move_uploaded_file($dateiname_temp, $pfad.$dateiname);
            if (filesize($pfad.$dateiname)<1) die ('Sie haben versucht eine leerer Datei hochzuladen!');
            $dateiupload_erfolgreich = true;
        }
        else $fehlermeldungen_ausgeben = true;
    }
    else $fehlermeldungen_ausgeben = true;
}




?>
<html>
<head>
<title>Datei-Upload</title>
</head>
<body>
<?php
if ($dateiupload_erfolgreich)
{
?>Ihre Datei (&quot;<?php echo $dateiname; ?>&quot;) wurde hochgeladen. Sie können nun weitere Dateien hochladen.<?php
}
elseif (!empty($fehler))
{
    ?>
    <br>Es sind folgende Fehler aufgetreten:<br>
    <?php
    foreach ($fehler as $fehlermeldung) {
    echo $fehlermeldung.'<br>';
    }
?>Beseitigen sie wenn möglich den Fehler und versuchen sie es erneut.<?php
}
?>


Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form enctype="multipart/form-data" action="../upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
Wählen Sie eine Datei die hochgeladen werden soll: <input name="userfile" type="file">
<input type="submit" value="Upload Datei">
</form>  
</body>
</html>
 
Zuletzt bearbeitet:
Es ist zwar immer ganz hilfreich bei Formularen, wenn man ggf. schon maxlength setzt, weil es dann Schreibarbeit in PHP verringert, aber wieso benutzen so viele Leute
Code:
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">

? Lass das einfach mal draußen. Ich würds so machen, allein schon weil es übersichtlicher ist:

PHP:
<?

if(isset($_POST['send'])) {	
	$error = '';	
	$tempname = $_FILES['file']['tmp_name']; 
	$type = $_FILES['file']['type'];		
	$name = $_FILES['file']['name'];	
	$size = $_FILES['file']['size']; 
	$size = round($size / 1024, 2);
	
	if($size > 30)	// Datei darf nicht größer als 30 kb sein
		$error .= 'Die Datei darf nicht größer als 30 kb sein!<br/>';
		
	if($type != 'image/jpeg') // Datei darf nur vom Format *.jpg sein
		$error .= 'Die Datei muss im *.jpg Format hochgeladen werden.<br/>';
		
	if($error) { // Falls Fehler aufgetreten sind, werden sie hier ausgegeben
		print($error); 
	} else { // Falls keine aufgetreten sind, wird die Datei in den Ordner verschoben
		move_uploaded_file($tempname, './html/upload/' .$name);		
		// usw ...
	}		
?>
 
Setz über dem ?> ganz am Ende noch ein }. Ich hab vergessen die If-Abfrage zu schließen. Mit dem Script kannst du nun keine Dateien bis zu 50 Mb hochladen, weil dort ja noch eine sperre von 30 kb drin ist. Du müsstest also die Zeile ändern:

if($size > 30)

in

if($size > 51200)
 
Hallo User

hoffe störe nicht wen ich hier mal einfach mit was frage ?

baue grad ne linktausch börese und komme langsam den ende hinzu .

ich würde jetzt auch gerne ein apload für zb. filme machen damit user auch besser sehen um welchen film es sich handelt , hab nicht viel zeit um mich jetzt schon damit zu bescheftigen also ich würde es jetzt so machen einen ordner und jedes bild was da rein gespeichtert wird kriegt ne id damit ich die id des bildes(idbild) mit in meine datenbank zu den link´s tabelle speicher und so über die id immer die richtigen inhalte zu den richtigen bild hab würde es jemand anders machen

Gruß .::JS::.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben