SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11.04.2006, 17:18:56
Stifler Stifler ist offline
Junior Member
 
Registriert seit: Dec 2003
Ort: Wörth am Rhein
Beiträge: 347
Stifler eine Nachricht über ICQ schicken
upload script will net wirklich uploaden

hi,

hab da ein zwei probleme und komme einfach net weiter. hab auch schon das forum durchsucht aber das hat mich leider auch net weiter gebracht :(

folgendes ich möchte ein bildupload script erstellen das, das bild vom user in einen ordner names bilder speichert und eine verkleinerte version in den ordner thumbs. soweit hab ich nun alles nach anweisung der script seite gemacht (das script hab ich von hier ) allerdings gibt er mir dauernd nur fehlermeldungen aus. den namen und die groesse der datei hat er, aber er speichert sie nicht. hab auch schon bei den anderen beiträgen gesehn das es vielleicht an den zugriffsrechten liegen könnte. aber ich kapier net wie ich dieses chmod() einsetzen muß.

den namen, grösse usw gibt er mir fehlerfrei aus, wie gesagt nur speichern will er das teil net. achja es läuft zur zeit lokal und ich benutze das neueste xamp packet.

es werden folgende fehlermeldungen ausgegeben:

Warning: getimagesize(bilder/) [function.getimagesize]: failed to open stream: Permission denied in C:\apache\xampp\htdocs\bild.php on line 10

Warning: Division by zero in C:\apache\xampp\htdocs\bild.php on line 16

Warning: imagecreate() [function.imagecreate]: Invalid image dimensions in C:\apache\xampp\htdocs\bild.php on line 17

Warning: imagecopyresized(): supplied argument is not a valid Image resource in C:\apache\xampp\htdocs\bild.php on line 34

hoffe von euch kann mir da einer weiter helfen.

PHP-Code:
<?
echo "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>";
echo "Der Grösse des Files ist ".$HTTP_POST_FILES['datei']['size']."<br>";
echo "Der File ist vom Typ: ".$HTTP_POST_FILES['datei']['type']."<br>";
echo "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>";

$dateiname=$HTTP_POST_FILES['datei']['name'];
copy($datei, "bilder/$dateiname");

$groesse=getimagesize("bilder/$dateiname");
echo $groesse;
$breite=$groesse[0];
$hoehe=$groesse[1];
$typ=$groesse[2];
print $typ;
$hoehe2=$hoehe*100/$breite;
$image1 = imagecreate(100,$hoehe2);
switch ($typ)
{
case 1:
$image = imagecreatefromgif("bilder/$dateiname");
break;
case 2:
$image = imagecreatefromjpeg("bilder/$dateiname");
break;
case 3:
$image = imagecreatefrompng("bilder/$dateiname");
break;
case 4:
$image = imagecreatefromwbmp("bilder/$dateiname");
break;
default: $gestorben="ja";
}
imagecopyresized($image1, $image, 0,0, 0,0,100,$hoehe2,$breite,$hoehe);

switch ($typ)
{
case 1:
imagegif($image1,"bilder/thumbs/$dateiname");
break;
case 2:
imagejpeg($image1,"bilder/thumbs/$dateiname",50);
break;
case 3:
imagepng($image1,"bilder/thumbs/$dateiname");
break;
case 4:
imagewbmp($image1,"bilder/thumbs/$dateiname");
break;
default: $gestorben="ja";
}
print "Das Bild wurde hochgeladen und abgespeichert.".
" Der Thumbnail ist im Ordner thumbs, das Bild in bilder";
?>

<html>
<head>
<title> Bild upload direkt aus dem Browser </title>
</head>
<form action="" enctype=multipart/form-data method=post>
Wählen Sie eine Datei
<input type=file name=datei>
<input type=submit value=hochladen>
</form>
</body>
</html>
Mit Zitat antworten
  #2  
Alt 11.04.2006, 20:40:00
Benutzerbild von Serp
Serp Serp ist offline
Member
 
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
AW: upload script will net wirklich uploaden

Erst mal was sehr unschönes:

Zitat:
copy($datei, "bilder/$dateiname");
Erst mal wird das, wenn Register_Globals aus is (und ich hoffe, das ist es) nicht funktionieren, weil dann in $datei nix drinsteht. Außerdem verwendet man für hochgeladene Dateien auch nicht copy sondern move_uploades_file. Den Speicherort der hochgeladenen Datei kriegst du aus dem Arrayelement mit dem Schlüssel 'tmp_name'. Außerdem kannst du damit dann auch gleich prüfen, ob überhaupt was hochgeladen wurde:

PHP-Code:
if(!move_uploaded_file($_FILES['datei']['tmp_name'], './bilder/'.$dateiname) die('Keine Datei hochgeladen!!'
Womit wir schon beim nächsten Punkt wären: Den Fehlern. Die lassen mich alle darauf schließen, dass überhaupt keine Datei hochgeladen wird - der Dateiname und die Größe sind nämlich leer.
Der Fehler liegt darin, dass du das PHP-Script aufrufen lässt, auch wenn die Seite das erste mal geladen wird und somit noch keine Datei da sein kann. Du solltest das Script also dahingehend anpassend, dass bei fehlender Datei nix passiert. (Allerdings nicht unbedingt mit die() wie ich oben, das hilft dir auch nicht so viel weiter... ;) Würd stattdessen ne if-Schleife nehmen, die nur ausgeführt wird, wenn ein Bild hochgeladen wurde. Noch übersichtlicher wirds, wenn du das ganze Script in ne eigene Datei auslagerst und die, falls etwas hochgeladen wurde, mit require() einbindest. Aber wir wollen mal nicht übertreiben... ;))
Ansonsten solltest du bei deinem Formular vielleicht noch ne Seite angeben, an die das beim Abschicken hingehen soll... Und gewöhn dir an, HTML-Attribute in "" zu setzen... :)
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')

Für 100% sauberen Code.
Mit Zitat antworten
  #3  
Alt 11.04.2006, 20:58:02
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
AW: upload script will net wirklich uploaden

(tut mir leid, ich kanns mir einfach nicht verkneifen)
was ist ne if-schleife ???

mfg ;)
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
  #4  
Alt 11.04.2006, 22:15:11
Benutzerbild von Serp
Serp Serp ist offline
Member
 
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
AW: upload script will net wirklich uploaden

ARGH, jedesmal wieder...

PHP-Code:
str_replace('Schleife''Verzweigung'$forum.getPosts('Serp''DESC')[0]); 
Zufrieden? ;)


[Hausaufgabe: Verbessern Sie obiges Script, so dass es auch bei Posts, die explizit von einer while-Schleife sprechen, funktioniert, ohne Fehler einzubauen...]
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')

Für 100% sauberen Code.
Mit Zitat antworten
  #5  
Alt 11.04.2006, 23:04:01
Benutzerbild von z0iD
z0iD z0iD ist offline
Junior Member
 
Registriert seit: Mar 2006
Beiträge: 415
z0iD eine Nachricht über ICQ schicken
wie wärs damit?

PHP-Code:
$corrected = array ();
 foreach (
$forum.getPosts('Serp''DESC') as $post)
   
$corrected[] = eregi_replace ("(if)(.?)schleife","\1\2Verzweigung",$post); 
mfg, and never mind
__________________
Bitte sprich entweder deutsch oder englisch mit mir, aber nicht beides gleichzeitig.

----------
Bitte vor dem Fragen lesen: Wie man Fragen richtig stellt.
Mit Zitat antworten
  #6  
Alt 12.04.2006, 05:09:50
Stifler Stifler ist offline
Junior Member
 
Registriert seit: Dec 2003
Ort: Wörth am Rhein
Beiträge: 347
Stifler eine Nachricht über ICQ schicken
AW: upload script will net wirklich uploaden

so hab mal etwas rum experimentiert und es funktioniert soweit, sprich das original bild wird im ordner bilder und das verkleinerte bild im ordner thumbs erstellt.

jetzt stellen sich mir nur zwei weiter probleme und zwar wird wenn ich ein photo hochlade die farbqualität echt misserabel. kann man das irgendwie verhindern oder ist das leider normal so?

das zweite problem bzw frage die sich mir stellt, solange ich mehrere waagrechte bilder hochlade gibt es kein problem lade ich aber statt dessen ein senkrechtes bild (sprich die höhe ist grösse als die breite) dann bekomm ich die gleiche breite wie bei den waagrechten bildern.

hat jemand ne idee wie ich das verhindern kann? so das wenn die höhe grösser ist als die breite, die höhe auf die breite der waagrechten bilder gesetzt wird.

mein code sieht jetzt so aus

PHP-Code:
<form
  action="<?php echo $_SERVER['PHP_SELF']; ?>"
  method="post"
  enctype="multipart/form-data">
<input type="file" name="probe" />
<input type="submit" value="Los!" />
</form>
<hr />
<?php
  
if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) {
    
// Alternativ:            and   $_FILES['probe']['size']
    
move_uploaded_file($_FILES['probe']['tmp_name'], "bilder/".$_FILES['probe']['name']."");
    
    
$groesse=getimagesize("bilder/".$_FILES['probe']['name']."");
    
    
$breite=$groesse[0];
    
$hoehe=$groesse[1];
    
$typ=$groesse[2];
    echo 
$breite;
    
    
$hoehe2=$hoehe*100/$breite;
    
    
$image1 imagecreate(100,$hoehe2);
    switch (
$typ)
    {
    case 
1:
    
$image imagecreatefromgif("bilder/".$_FILES['probe']['name']."");
    break;
    case 
2:
    
$image imagecreatefromjpeg("bilder/".$_FILES['probe']['name']."");
    break;
    case 
3:
    
$image imagecreatefrompng("bilder/".$_FILES['probe']['name']."");
    break;
    case 
4:
    
$image imagecreatefromwbmp("bilder/".$_FILES['probe']['name']."");
    break;
    default: 
$gestorben="ja";
    }
    
imagecopyresized($image1$image0,00,0,100,$hoehe2,$breite,$hoehe);

    switch (
$typ)
    {
    case 
1:
    
imagegif($image1,"bilder/thumbs/".$_FILES['probe']['name']."");
    break;
    case 
2:
    
imagejpeg($image1,"bilder/thumbs/".$_FILES['probe']['name']."",80);
    break;
    case 
3:
    
imagepng($image1,"bilder/thumbs/".$_FILES['probe']['name']."");
    break;
    case 
4:
    
imagewbmp($image1,"bilder/thumbs/".$_FILES['probe']['name']."");
    break;
    default: 
$gestorben="ja";
    }
    
    
printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
      
$_FILES['probe']['size'], $_FILES['probe']['type']);
  }
 
?>
Mit Zitat antworten
  #7  
Alt 12.04.2006, 10:14:22
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: upload script will net wirklich uploaden

Meinst du bei PNG-Bildern? Da habe ich auch Qualitätsprobleme. Was bei mir nicht funktioniert ist gif-Bilder upzuloaden (mit deinem Script)
__________________
In der Ruhe liegt die Kraft!

Geändert von KTB (12.04.2006 um 10:33:35 Uhr)
Mit Zitat antworten
  #8  
Alt 12.04.2006, 10:56:53
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
AW: upload script will net wirklich uploaden

PHP-Code:
$image1 imagecreatetruecolor(100,$hoehe2); 
Versuch es mal damit, vllt hilft das.
Mit Zitat antworten
  #9  
Alt 12.04.2006, 11:02:47
KTB KTB ist offline
Member
 
Registriert seit: Mar 2006
Alter: 38
Beiträge: 599
AW: upload script will net wirklich uploaden

Ich hab mal noch eine Frage:
Wie kann ich den Bildern andere Namen zuweisen?
Also an welcher Stelle muss ich was machen, damit er den Dateinamen nicht übernimmt, sondern einen automatisch zugewiesen bekommt?

Folgendes Prinzip:
User läd ein Bild hoch. Dieses Bild bekommt dann als Namen z.B. eine IP-Adresse.
__________________
In der Ruhe liegt die Kraft!
Mit Zitat antworten
  #10  
Alt 12.04.2006, 12:50:56
Reinfi Reinfi ist offline
Anfänger
 
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
Reinfi eine Nachricht über ICQ schicken
AW: upload script will net wirklich uploaden

PHP-Code:
move_uploaded_file($_FILES['probe']['tmp_name'], "bilder/".$_FILES['probe']['name'].""); 
daraus machste einfach

PHP-Code:
move_uploaded_file($_FILES['probe']['tmp_name'], "bilder/ich-bin-der-name.jpg"); 
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wichtig: Upload Script auf FTP-Server und dessen Sicherheit? Supernova PHP für Fortgeschrittene und Experten 5 21.07.2004 12:41:52
Problem mit einem Upload Script. Bitte schnelle antwort!!! Fabian85 PHP für Fortgeschrittene und Experten 1 06.05.2004 10:04:09
upload script Driel PHP Grundlagen 5 04.03.2004 22:38:52
Upload Script thorben PHP Grundlagen 11 25.10.2003 17:12:21
[Newbie] Mein Script (Upload) läuft nicht... Hilfe! TigerDE2 PHP Grundlagen 15 12.12.2002 11:17:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:40:04 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt