Problem mit copy()

crunch

Mitglied
Ich habe ein Upload gebastelt:

Das Formular
HTML:
<form enctype="multipart/form-data" action="redirect.php?redirect=insertFoto&MAX_FILE_SIZE=5000" method="post">
<input type="text" name="fotoname" size="30" maxlength="50" value="Name"><br><br>
<input type="file" name="datei"><br><br>
<input type="submit" value="&nbsp;&nbsp;&nbsp;&raquo;hochladen&nbsp;&nbsp;&nbsp;"><br>
</form>

dann führe ich in der redirect.php copy() aus
PHP:
copy($_FILES['datei'],"$dateiname");

erhalte aber folgende Fehlermeldung:

Warning: copy() [function.copy]: Unable to access Array in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 74

Warning: copy(Array) [function.copy]: failed to open stream: No such file or directory in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 74

heißt das, dass $datei ein array ist und ein array nicht hochgeladen werden kann?
Ich will doch keinen array, sondern die datei, die ich ausgewählt habe?

stehe auf dem schlauch...Danke!
 
Zuletzt bearbeitet:
Warning: copy() [function.copy]: Unable to access luftpumpe.gif in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 74

Warning: copy(luftpumpe.gif) [function.copy]: failed to open stream: No such file or directory in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 74

bin jetzt etwas weiter
 
aaa...son dreck...

hab jetzt $dateiname in $datei geändert..

jetzt läuft alles durch (ohne Error) aber nichts passiert auf dem server
 
Warning: move_uploaded_file(../fotos) [function.move-uploaded-file]: failed to open stream: Is a directory in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 75

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/tmp/phpmCaypF' to '../fotos' in /mnt/am1/06/246/00000021/htdocs/web/insertFoto.php on line 75

das bekomme ich, wenn ich

PHP:
move_uploaded_file($_FILES['datei']['tmp_name'], "../fotos");

schreibe
 
PHP:
   function check_datei() {

   global $datei_name, $dateiname;
   $backupstring = "copy_of_";
   $dateiname = $backupstring."$dateiname";

   if( file_exists($dateiname)) {
   check_datei();
   $meldung = "Datei existiert noch nicht auf Server";
   }

   }

   if(empty($_FILES['datei'])) {
   $meldung = "Bitte eine Datei auswählen";
   $dateiname .= $datei_name;
   $ok = 1;
   }

   if( file_exists($datei_name)) {
   check_datei();
   $meldung = "..Die Datei mit dem Dateinamen <b>$datei_name</b> existierte bereits.<br> Ihre Datei wurde in <b>$dateiname</b> umbenannt";
   $ok = 1;
   }

   if($datei_size > $MAX_FILE_SIZE) {
   $meldung = "..Die Datei ist zu groß, die maximale Dateigr&ouml;sse beträgt $MAX_FILE_SIZE Byte(s)";
   $ok = 1;
   }


   //echo $ok;
   if ($ok == 0) {

   $meldung = "..copy!!";
   //copy($_FILES['datei']['name'],"$dateiname");
   $dateiname =
   copy($_FILES['datei']['tmp_name'], $dateiname);
   //$_FILES['datei'] C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Webseiten\collado\luftpumpe.gif

   if(file_exists($dateiname)) {
   $meldung = "..Die Datei <b>$datei_name</b> wurde mit <b>$datei_size Byte</b> erfolgreich hochgeladen";
   } else {
   $meldung = "..Die Datei ist nicht vorhanden";
   }

so sieht mein script im moment aus. wenn ich die datei hochladen will, meldet er mir

..Die Datei ist nicht vorhanden

das formular:

HTML:
<form enctype="multipart/form-data" action="redirect.php?redirect=insertFoto&MAX_FILE_SIZE=5000" method="post">
<input type="text" name="fotoname" size="30" maxlength="50" value="Name"><br><br>
<input type="file" name="datei"><br><br>
<input type="submit" value="hochladen"><br>
</form>
 
Keep it Stupid Simple (KISS)
Ich glaub das du Das Bild ersteinmal AUF den Server verfrachten must ;)
Was Fehlt sind abfragen über maximalgröße des Bildes, maximallänge des Bildnamens usw...

PHP:
//------------------------------------------------------------------------------
function fileput($file,$data){
//------------------------------------------------------------------------------
//unlink($file); // Komentar entfernen wenn datei vorher geöscht werden soll
$fh=fopen($file,"w");
fwrite($fh,$data);
fclose($fh);
}
//------------------------------------------------------------------------------
function fileget($file){
//------------------------------------------------------------------------------
$fh=fopen($file,"r");
$data=fread( $fh,filesize($file));
fclose($fh);
return $data;
}

//------------------------------------------------------------------------------
function parm(){
$arg  = func_get_args();
$val  =$arg[0];
$def  =$arg[1];
//------------------------------------------------------------------------------

$h=$_GET[$val];
if ($h==""){
	$h=$_POST[$val];
}
if ($h==""){
$h=$def;
}
$GLOBALS[$val]=$h;
return $h;
}
	

fileput("../relativer_Pfad_zum_Ablagern/".parm("Name"),"datei");


HTML:
<form enctype="multipart/form-data" action="redirect.php?redirect=insertFoto&MAX_FILE_SIZE=5000" method="post">
<input type="text" name="fotoname" size="30" maxlength="50" value="Name"><br><br>
<input type="file" name="datei"><br><br>
<input type="submit" value="hochladen"><br>
</form>


Bitet denke dran das du Schreibrechte auf dem Server brauchst !
 
Zuletzt bearbeitet:
Zurück