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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
11.04.2006, 16:18:56
|
Junior Member
|
|
Registriert seit: Dec 2003
Ort: Wörth am Rhein
Beiträge: 347
|
|
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>
|
11.04.2006, 19:40:00
|
|
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.
|
11.04.2006, 19:58:02
|
|
Junior Member
|
|
Registriert seit: Mar 2006
Beiträge: 415
|
|
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.
|
11.04.2006, 21:15:11
|
|
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.
|
11.04.2006, 22:04:01
|
|
Junior Member
|
|
Registriert seit: Mar 2006
Beiträge: 415
|
|
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.
|
12.04.2006, 04:09:50
|
Junior Member
|
|
Registriert seit: Dec 2003
Ort: Wörth am Rhein
Beiträge: 347
|
|
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, $image, 0,0, 0,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']);
}
?>
|
12.04.2006, 09:14:22
|
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 09:33:35 Uhr)
|
12.04.2006, 09:56:53
|
Anfänger
|
|
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
|
|
AW: upload script will net wirklich uploaden
PHP-Code:
$image1 = imagecreatetruecolor(100,$hoehe2);
Versuch es mal damit, vllt hilft das.
|
12.04.2006, 10:02:47
|
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!
|
12.04.2006, 11:50:56
|
Anfänger
|
|
Registriert seit: Jan 2006
Ort: Rinkerode
Alter: 38
Beiträge: 81
|
|
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");
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:00:53 Uhr.
|