WinFuture-Forum.de: [php] Bilder Uploadscript - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php] Bilder Uploadscript


#1 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 29. Juni 2005 - 20:05

Huhu,
sitze atm an einem Uploadscript .. wobei es theoretisch alle Dateien sein könnten aber atm eben fixiert auf Bilder.

Hier der Code ->
<?php
//File Upload Script (C) by Sin
//Options
$scripturl="http://www.url.tdl/scriptfolder/";
$filesizemax=512000; // Filesize in Byte (1 MByte -> 1024 KByte -> 1048576 Byte.
$fileextensions=array(".gif",".png",".jpg",".jpeg"); // Allowd File Extensions
//Options End
// Installation
if(!is_dir("uploads")) //Funzt atm nicht -> der Ordner is irgendwie unbenutzbar O_o?
{
  mkdir("uploads",0666);
  echo "Directory Created...</br>";
}
//Installation End
//Get Uploads
if($_FILES['uploaded']['temp_name']=="")
{
echo '
<form enctype="multipart/form-data" action="'.$scripturl.'" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="'.$filesizemax.'">
Send this file: <input name="uploaded" type="file">
<input type="submit" value="Send File">
</form>
';
}
$check = $_FILES['uploaded']['name'];
$four=substr($check, -4);
$three=substr($check, -3);
if((in_array($four,$fileextensions))OR(in_array($three,$fileextensions))){
if($_FILES['uploaded']['size']>$filesizemax) die('Filesize is too big.');
if($_FILES['uploaded']['type']=!$fileextensions) die('Wrong Filetype.');
$filehandle = readfile($_FILES['uploaded']['temp_name']);
$filehandle2 = fopen($scripturl."uploads/".$_FILES['uploaded']['name'],"w");
fwrite($filehandle2,$filehandle);
fclose($filehandle2);
echo "File uploaded .... </br>";
echo "URL: ".$scripturl."uploads/".$_FILES['uploaded']['name'];
} else { echo "Filetype isn't allowed."; }
?>


Probleme: mkdir() geht nicht -> der Ordner ist unbrauchbar.
die ganze fwrite geschichte funzt nicht .. und hab atm keine Ahnung warum ...

Also wer lust hat bissel mitzubasteln .. :cool:
0

Anzeige



#2 Mitglied ist offline   Meatwad 

  • Gruppe: aktive Mitglieder
  • Beiträge: 784
  • Beigetreten: 07. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bad Vilbel
  • Interessen:Computer, Inliner, Chatten...

geschrieben 29. Juni 2005 - 20:26

versuch dochmal chmod()!

setz die rechte auf 777 von dem ordner, wenn allerdings schon daten in dem ordner vorhanden sind, solltest du sie rekursiv "chmodden"

[code]<?php
function chmod_R($path, $filemode) {
if (!is_dir($path))
return chmod($path, $filemode);

$dh = opendir($path);
while ($file = readdir($dh)) {
if($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if(!is_dir($fullpath)) {
if (!chmod($fullpath, $filemode))
return FALSE;
} else {
if (!chmod_R($fullpath, $filemode))
return FALSE;
}
}
}

closedir($dh);

if(chmod($path, $filemode))
return TRUE;
else
return FALSE;
}
?>[/quote]

der code ist nich von mir, sonder aus einem beitrag von dem phpmanual!
I am away to look for my self. If I am back before I return keep me here. | Mein Server
0

#3 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 29. Juni 2005 - 20:26

Hatte auch schon überlegt ein Skript zu schreiben (da alles bisherige praktisch unbrauchbar war hier), aber noch keine Zeit gehabt.

Zu mdir: Nimm mal 0777 anstatt 0666. Und anstatt fwrite nimm besser move_uplodaded_file (siehe Handbuch).

Dieser Beitrag wurde von Floele bearbeitet: 29. Juni 2005 - 20:31

0

#4 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 29. Juni 2005 - 21:37

So eine neue Version -> funzt soweit :cool:

<?php
//File Upload Script (C) by Sin
//Options
$scripturl="http://www.domain.tld/ordner/";
$updir='uploads/';
$filesizemax=512000; // Filesize in Byte (1 MByte -> 1024 KByte -> 1048576 Byte.
$fileextensions=array(".gif",".png",".jpg",".jpeg"); // Allowd File Extensions
$filetype=array("image/gif","image/jpg","image/jpeg");
//Options End
// Installation

//Installation End
//Get Uploads
if($_FILES['uploaded']['temp_name']=="")
{
echo '
<form enctype="multipart/form-data" action="'.$scripturl.'upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="'.$filesizemax.'">
Send this file: <input name="uploaded" type="file">
<input type="submit" value="Send File">
</form>
';
}
$check = $_FILES['uploaded']['name'];
$four=substr($check, -4);
$three=substr($check, -3);
if((in_array($four,$fileextensions))OR(in_array($three,$fileextensions))){
if($_FILES['uploaded']['size']>$filesizemax) die('Filesize is too big.');
if(!in_array($_FILES['uploaded']['type'],$filetype)) die('Wrong Filetype.');
move_uploaded_file($_FILES['uploaded']['tmp_name'], $updir . $_FILES['uploaded']['name']);
echo "File uploaded .... </br>";
print_r($_FILES);
echo "URL: ".$scripturl."uploads/".$_FILES['uploaded']['name'];
} else { echo "Filetype isn't allowed.<br";
 	 print_r($_FILES);}
	
?>



die print_r sind noch für debugging ;)

Nur folgendes Problem -> leider funktioniert $_FILE['filename']['type'] kein Stück .. es liest lediglich den "theoretischen" Typ aus .. also nach der Endung ;/

Sprich wenn ich ne .php datei als .gif hochlade meint er es wäre image/gif ...

Nur da wollte ich halt sichergehen das es wirklich nen bild is .. wobei ich die .php datei als .gif gespeichert beim aufruf nen fehler erzeugt -> ist doch weiterhin ein sicherheitsrisiko oder?
0

#5 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 29. Juni 2005 - 21:47

Zitat

Nur da wollte ich halt sichergehen das es wirklich nen bild is .. wobei ich die .php datei als .gif gespeichert beim aufruf nen fehler erzeugt -> ist doch weiterhin ein sicherheitsrisiko oder?


Nö, ist eigentlich kein Risiko, da PHP Code in Bilddateien standardmäßig nicht ausgeführt wird.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0