upload via formular

longstar

Grünschnabel
Hallo Leute,

ich hab mir das tutorial upload via formular angeschaut. Leider such ich noch eine lösung:

Ich möchte den "speicherort" fest legen. Aber wie? Hab schon vieles auprobiert aber leider funktioniert dies nicht.

Hoffe, dass mir einer weiter helfen kann.

:rolleyes:
 
Hallo,

als speicherort wird meistens der copy(); Befehl genommen: (nachdem du die datei hochgeladen hast, liegt sie in einem temp-ordner)

PHP:
$bilddatei = $_FILES['dateiname'];
$ziel = "images/speicher".$bilddatei['name'];
copy($bilddatei['tmp_name'],$ziel);
 
Die zwei Funktionen machen genau das selbe, nur dass move_uploaded_file noch überprüft, ob es sich um eine durch HTTP POST hochgeladenen Datei handelt. Wenn du copy() $_FILES['name']['tmp_name'] übergibst, macht es keinen Unterschied, ob du copy() oder move_uploaded_file() benutzt, nur das copy() etwas schneller sein müsste.
 
Müsste es nicht auch so sein, dass move_uploaded_file() die Temporäre Datei verschiebt (und sie damit aus dem Verzeichnis für temporäre Daten löscht) und copy() die Datei einfach nur kopiert?
Wenn das so ist, würde ich eher zu move_uploaded_file() tendieren.
 
Hallo,

bled hat gesagt.:
Müsste es nicht auch so sein, dass move_uploaded_file() die Temporäre Datei verschiebt (und sie damit aus dem Verzeichnis für temporäre Daten löscht) und copy() die Datei einfach nur kopiert?
Wenn das so ist, würde ich eher zu move_uploaded_file() tendieren.

also bei mir auf meinem privaten Server werden die tempfiles immer automatisch gelöscht, nachdem der upload fertig ist.

Ist das bei jedem Apache server?

Grüße,
Fabian
 
move_uploaded_file() verschiebt die Datei, copy() kopiert die Datei. Damit wäre move_uploaded_file() eher äquivalent zu rename(). Da sich die Dateien aber in einem temporären Ordner befinden, ist es relativ egal, ob die Dateien im temporären Ordner bleiben oder nicht.
 
Hallo,

erstmal vielen dank jungs für die schnelle antwort :) .

Leider kann ich damit nicht viel anfangen also hab das eingesetzt kommt immer fehlermeldung. :-( hier der code:

Code:
<?
require('inc/inc_db.php');
require('inc/lang/german/index.php');

										///////// bild upload /////////////
// ordner name wo es upgeloadet wird
$tempname = $_FILES['file']['tmp_name'];

// datei name
$name = $_FILES['file']['name']; 

// prüfung der dateiformate
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size']; 

// prüfung von grösse und datei typ 
// html kann leicht gekratt werden daher php funktion
if($type != "image/gif" && $type != "image/jpeg") {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if($size > "15000") {
    $err[] = "Die Datei welche Sie hochladen wollen, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
} 


?> 
<html>
<head>
<title><? TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%">
  <tr> 
    <td colspan="2"><? include('inc/header.php'); ?></td>
  </tr>
  <tr> 
    <td width="11%" rowspan="2" valign="top"><? include('inc/navibox.php'); ?></td>
    <td class="maintop"><? echo SHOW; ?></td>
  </tr>
  <tr> 
    <td valign="top" class="main">
	<?
// upload
if(empty($err)) {
    move_uploaded_file("$tempname", "$name");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
}
// kein upload
else {
    foreach($err as $error)
    echo "$error<br>";
}
	?>
<form enctype="multipart/form-data" action="show.php" method="post">
<input type="file" name="file"><br>
<input type="submit" value="hochladen"> 
</form> 
	</td>
  </tr>
</table>
</body>
</html>



Es müsste eigendlich ne simple lösung sein. aber bin glaube ich zu dumm für php :(.
Ich bring mir das selber gerade bei in http://php4.globe.de/manual/de/ finde selbst da nicht viel oder ich blick da nicht ganz durch.

hoffe da geht noch was an hilfe.

Gruß,

Richard
 
Zurück