php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.02.2006, 11:22  
Gast
 
Beiträge: n/a
Standard bildupload groesse aendern und speichern

hallo zusammen,

ich habe in flash ne seite fuer ne freundin gebastelt, flash kann in der neusten version auch einen dateidialog oeffnen und bilder via php uploaden.
aus dem beispiel hab ich mir zumindest schonmal was funktionstuechtiges gebastelt. bin aber nen echter php bloedi und kann mit dem beispiel nicht viel anfangen und hab nen bissel angst das hinterher nix mehr funktioniert.

wer hat lust und zeit mir nen bissel zu helfen?
das ding schreibt die dateien auf den server, prueft die dateigroesse, und ich kann ne maximale anzahl der uploads angeben.

mir fehlt die aenderunf der dimensionen des bildes...
wenn das bild mit 2000 mal 1000 pixeln hochgeladen wird soll es verkleinert und dann auf den server gespeichert werden. soll immer in nem kasten von 480 mal 360 rein passen.

wenn jemand helfen mag waer ich seht dankbar...
wenns hier zu umstaendlich ist schick ich das beispiel auch gern als pn...
koennte im gegenzug vielleicht mal bei flash helfen...
wie immer danke vorab...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.02.2006, 11:25  
Gast
 
Beiträge: n/a
Standard

das hier ist das bsp von macromedia....
den filecount brauch ich eigentlich nicht....

<?php

$MAXIMUM_FILESIZE = 1024 * 2000; // 200KB
$MAXIMUM_FILE_COUNT = 10; // keep maximum 10 files on server
echo exif_imagetype($_FILES['Filedata']);
if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) {
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']);
$type = exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
if ($type == 1 || $type == 2 || $type == 3) {
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);
} else {
unlink("./temporary/".$_FILES['Filedata']['name']);
}
}
$directory = opendir('./images/');
$files = array();
while ($file = readdir($directory)) {
array_push($files, array('./images/'.$file, filectime('./images/'.$file)));
}
usort($files, sorter);
if (count($files) > $MAXIMUM_FILE_COUNT) {
$files_to_delete = array_splice($files, 0, count($files) - $MAXIMUM_FILE_COUNT);
for ($i = 0; $i < count($files_to_delete); $i++) {
unlink($files_to_delete[$i][0]);
}
}
print_r($files);
closedir($directory);

function sorter($a, $b) {
if ($a[1] == $b[1]) {
return 0;
} else {
return ($a[1] < $b[1]) ? -1 : 1;
}
}
?>
 
Alt 16.02.2006, 11:27  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

benutz doch bitte die PHP Tags des Forums..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 16.02.2006, 11:43  
Gast
 
Beiträge: n/a
Standard

Zitat:
mir fehlt die aenderunf der dimensionen des bildes...
wenn das bild mit 2000 mal 1000 pixeln hochgeladen wird soll es verkleinert und dann auf den server gespeichert werden. soll immer in nem kasten von 480 mal 360 rein passen.
Thema Thumbnail -> siehe Forumsuche
 
Alt 16.02.2006, 11:45  
Gast
 
Beiträge: n/a
Standard

hab ich noch nicht probiert...

2. versuch...

PHP-Code:
<?php 

$MAXIMUM_FILESIZE 
1024 2000// 200KB 
$MAXIMUM_FILE_COUNT 10// keep maximum 10 files on server 
echo exif_imagetype($_FILES['Filedata']); 
if (
$_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) { 
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']); 
$type exif_imagetype("./temporary/".$_FILES['Filedata']['name']); 
if (
$type == || $type == || $type == 3) { 
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']); 
} else { 
unlink("./temporary/".$_FILES['Filedata']['name']); 


$directory opendir('./images/'); 
$files = array(); 
while (
$file readdir($directory)) { 
array_push($files, array('./images/'.$filefilectime('./images/'.$file))); 

usort($filessorter); 
if (
count($files) > $MAXIMUM_FILE_COUNT) { 
$files_to_delete array_splice($files0count($files) - $MAXIMUM_FILE_COUNT); 
for (
$i 0$i count($files_to_delete); $i++) { 
unlink($files_to_delete[$i][0]); 


print_r($files); 
closedir($directory); 

function 
sorter($a$b) { 
if (
$a[1] == $b[1]) { 
return 
0
} else { 
return (
$a[1] < $b[1]) ? -1


?>
 
Alt 16.02.2006, 13:39  
Gast
 
Beiträge: n/a
Standard

hab gesucht und nur recht komplexe probleme gefunden mit problemen die ich gar nicht haben will..

hab aber in der hilfe imagecopyresampled gefunden und versucht das in das flash beispiel zu basteln.
ich glaub es hackt nur an dem namen der datei....
bitte mal anschauen, habs markiert...


PHP-Code:
<?php

$MAXIMUM_FILESIZE 
1024 2000// 200KB
$MAXIMUM_FILE_COUNT 10// keep maximum 10 files on server
$width 480;
$height 360;

echo 
exif_imagetype($_FILES['Filedata']);

if (
$_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) {

//---------- das hier hab ich aus nem beispiel..........

// The file
$filename 'test.jpg';   //<------- was muss hier hin?????????
// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig$height_orig) = getimagesize($filename);

if (
$width && ($width_orig $height_orig)) {
   
$width = ($height $height_orig) * $width_orig;
} else {
   
$height = ($width $width_orig) * $height_orig;
}
// Resample
$image_p imagecreatetruecolor($width$height);
$image imagecreatefromjpeg($filename);
imagecopyresampled($image_p$image0000$width$height$width_orig$height_orig);

//------ und bis hier hin geht das reingebastelte -----



  
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']);
  
  
// prueft den dateityp,jpg,gif,png
  
$type exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
  if (
$type == || $type == || $type == 3) {
    
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);
  } else {
    
unlink("./temporary/".$_FILES['Filedata']['name']);
  }
  
}
$directory opendir('./images/');
$files = array();
while (
$file readdir($directory)) {
  
array_push($files, array('./images/'.$filefilectime('./images/'.$file)));
}
usort($filessorter);
if (
count($files) > $MAXIMUM_FILE_COUNT) {
  
$files_to_delete array_splice($files0count($files) - $MAXIMUM_FILE_COUNT);
  for (
$i 0$i count($files_to_delete); $i++) {
    
unlink($files_to_delete[$i][0]);
  }
}
print_r($files);
closedir($directory);

function 
sorter($a$b) {
  if (
$a[1] == $b[1]) {
    return 
0;
  } else {
    return (
$a[1] < $b[1]) ? -1;
  }
}
?>
 
Alt 17.02.2006, 11:44  
Gast
 
Beiträge: n/a
Standard

ich hab mal gestern noch nen bissel gebastelt...
da ich ja kein geuebter bin hier erst mal die frage ob ich das skript verstehe.

zuerst wird das bild auf den server geladen, wenns fertig ist wird geprueft obs ok ist. wenn ok, dann landet es im ordner images
"./images/".$_FILES['Filedata']['name']
das hab ich fuer die uebergabe des dateinamens an das eingesetze skript
dann einfach uebernommen, aber das bild ist nicht angepasst worden...

was mach ich falsch???

[/php]
<?php

$MAXIMUM_FILESIZE = 1024 * 2000; // 200KB
$MAXIMUM_FILE_COUNT = 10; // keep maximum 10 files on server
$width = 480;
$height = 360;

echo exif_imagetype($_FILES['Filedata']);

if ($_FILES['Filedata']['size'] <= $MAXIMUM_FILESIZE) {

move_uploaded_file($_FILES['Filedata']['tmp_name'], "./temporary/".$_FILES['Filedata']['name']);

// prueft den dateityp,jpg,gif,png ----------------------------------------
$type = exif_imagetype("./temporary/".$_FILES['Filedata']['name']);
if ($type == 1 || $type == 2 || $type == 3) {
rename("./temporary/".$_FILES['Filedata']['name'], "./images/".$_FILES['Filedata']['name']);

//---------- das hier hab ich aus nem beispiel von php.net... -------------------------------------------

// The file
// $filename = $_POST[""]; ???????

$filename = "./images/".$_FILES['Filedata']['name']; //<---------- richtig????
// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

//------ und bis hier hin geht das reingebastelte ---------------------------------------------------



} else {
unlink("./temporary/".$_FILES['Filedata']['name']);
}

}
$directory = opendir('./images/');
$files = array();
while ($file = readdir($directory)) {
array_push($files, array('./images/'.$file, filectime('./images/'.$file)));
}
usort($files, sorter);
if (count($files) > $MAXIMUM_FILE_COUNT) {
$files_to_delete = array_splice($files, 0, count($files) - $MAXIMUM_FILE_COUNT);
for ($i = 0; $i < count($files_to_delete); $i++) {
unlink($files_to_delete[$i][0]);
}
}
print_r($files);
closedir($directory);

function sorter($a, $b) {
if ($a[1] == $b[1]) {
return 0;
} else {
return ($a[1] < $b[1]) ? -1 : 1;
}
}
?>

 
Alt 17.02.2006, 11:53  
Gast
 
Beiträge: n/a
Standard

Du veränderst das Bild zwar mit imagecopyresampled, aber du speicherst es nicht.

Gruß
phpfan
 
Alt 17.02.2006, 12:24  
Gast
 
Beiträge: n/a
Standard

ok, hab in der hilfe imagejpg gefunden.

wenn ich da aber so unter imagecopyresampled drunter packe pa imagecopyresampled imagecopyresamplediert nix

imagejpeg($image,$filename,100);

fehlt noch was??? hab keine ahnung...
 
Alt 17.02.2006, 12:26  
Gast
 
Beiträge: n/a
Standard

Man könnte sich ja einfach mal alle Variablen per echo anzeigen lassen, um dann zu überprüfen, welche Werte die so haben. Ist aber nur so eine dumme Idee, habe gehört, dass man so tatsächlich auch selber einige Fehler finden kann. Und das sogar als Anfänger, denn echo lernt man ja direkt am Anfang.

Gruß
phpfan
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Audio-Recorder / Zugriff auf Mikrofon -> speichern agrajag JavaScript, Ajax und mehr 4 27.07.2008 17:19
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Bild Komprimiert speichern Culutio PHP-Fortgeschrittene 15 18.02.2007 18:54
PDF per PHP - Problem bei "Ziel speichern unter..." freq.9 PHP Tipps 2006 7 18.08.2006 16:54
[Erledigt] Speichern unter... geht nicht!!! PHP-Fortgeschrittene 8 09.02.2006 16:55
Bild (.jpg) mit Link auf Festplatte speichern PsychoEagle PHP Tipps 2005-2 11 16.06.2005 14:54
Bilder speichern statt anzeigen... PHP Tipps 2005 3 25.04.2005 15:22
XML speichern McWolle PHP-Fortgeschrittene 5 04.04.2005 19:38
[Erledigt] Emails speichern Datenbanken 1 08.02.2005 20:06
[Erledigt] Datei speichern - via header - O Byte PHP-Fortgeschrittene 1 15.01.2005 17:13
Mail inkl. all. Elementen speichern Beitragsarchiv 5 29.12.2004 13:21
Werte in Textdatei speichern und auslesen PHP Tipps 2004-2 12 21.12.2004 09:22
Pfadange in mysql speichern - funktioniert nicht Calli PHP Tipps 2004-2 8 30.11.2004 15:41
Bild speichern das mit der GDLib erstellt wurde. Stefano PHP Tipps 2004 2 22.09.2004 11:53
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$_files[\'filedata\'] dateityp, php _files unlink, exif_imagetype($_files[\'filedata\']); thumbnails erstellen, php mysql bilder beim aufruf der seite verkleinern, php bild upload auf server speichern, php bilder bei upoad verkleinert speichern, php bilderupload & größe, $_files[\filedata\] verkleinern, count files php, php bildupload und komprimieren, php hochladen verkleinern speichern, $check = exif_imagetype($_files[\file\][\tmp_name\]);

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.