Inloggen
Username:
Password:



Password vergeten?
Menu
Home
Forums
Wiki
Script Library
Forum tracker
RSS Feed
Sponsoren
Vacature plaatsen

Aanmelden
Huisregels
Vereniging

Adverteren
Disclaimer
Zoeken

In:
Aantal leden
PHPFreakz kent momenteel 50394 geregistreerde leden.
Opties
Printversie
Navigatie
Vorige 30  |  Volgende 30 Kies een ander forum:
GD bewaar probleem
Gepost door: chris vermeiren
Gepost op: 07-09-2003 19:07

ik had dit bericht al eens gepost op het mysql forum omdat het prbleem zich zit bij het bewaren. maar aangezien daar niemand iets van GD afkent prbeer ik hier eens opniew.
( http://www.phpfreakz.nl/forum.php?forum=2&iid=292834#reply )

de centrale vraag, hoe kan ik mijn jpg onder een var krijgen ???

------------------------------
ik zit dus met een probleem bij het opladen van fotos naar blob my sql velden.

tot nu toe gebuikte ik het volgende script:

<?

if ($HTTP_POST_FILES[file][tmp_name] != "none" OR !$mapi) { 
  
      If (
filesize($HTTP_POST_FILES[file][tmp_name]) > 40500) {
          echo
"Bestand te groot!"
      } else {
       
$date = (date ("dmY")); 
  
           
$fp = @fopen($HTTP_POST_FILES[file][tmp_name],"r"); /* poging tot openen van het bestand */ 
       
if ($fp) { /* als het openen is gelukt */ 
             
$content = fread($fp,filesize($HTTP_POST_FILES[file][tmp_name])); /* eerst de inhoud van t bestand uitlezen */ 
             
fclose($fp); /* bestand sluiten */ 
              
             
              

              
echo" toevoegen aan: $tabeldb <br> bezig ... <br><hr>";
             
$sql = "INSERT INTO $tabeldb VALUES(0,'" . addslashes($content) . "','" . $_SESSION[nick] . "','" . $_SESSION[idm] . "','" . $date . "','" . $_SESSION[acidi] . "','" . $mapi . "')"
              include(
'dbconnect-img.php');
              @
mysql_query($sql) or Die(mysql_error()); /* en query uitvoeren */ 
    
                     
$result = mysql_query("select * from $tabeldb WHERE imgi= '" . addslashes($content) . "' AND date= '$date' ") or die (mysql_error());
                    while (
$row = mysql_fetch_array($result)){
                   
$idi=$row["idi"];
                    }
                    
              echo
"Bestand opgeladen<br>idi: $idi<br> url: imgview.php?idi=$idi&db=1 <br> full url: http://www.powerg.uwhost.net/imgview.php?idi=$idi&db=1"
        } else {
/* als het bestand niet geopend kan worden, dus !$fp */ 
             
print "Kan bestand niet openen"
          }
    } 
  } else { 
    echo
"Geen bestand of map geselecteerd!"
  } 

?> 

------------------------------------------

dit script werkt al een heele tijd perfect

maar aangezien groote probleemen en meerdere tips die we hebben binne gekregen zou ik dus in de toekomst in combinatie met de php gd libary een transparant logo in de onderhoek willen toevoegen. ook hiervan heb ik mijn huiswerk al gemaakt, ik werk op dit ogenblik met het volgende script:

<?
// Naam van het plaatje (zonder pad omdat het later nog eens gebruikt wordt)
$sImage = '1.jpg';

// Haal de afmeting gegevens van het plaatje
$aData = getimagesize($sImage);
$iSizeX = $aData[0];
$iSizeY = $aData[1];

// Maak een nieuw truecolor-plaatje van de gewensde afmeting
$imgDest = imagecreatetruecolor(450, 360);

// Open het bestaande plaatje
$imgSrc = imagecreatefromjpeg($sImage);

// Copieer het bestaande plaatje naar het nieuwe plaatje (resizen)
imagecopyresampled($imgDest, $imgSrc, 0, 0, 0, 0, 450, 360, $iSizeX, $iSizeY);

// Haal de afmeting gegevens van de copyright notice
$aData = getimagesize('pg.png');
$iCopyrightSizeX = $aData[0];
$iCopyrightSizeY = $aData[1];

// Open het copyright notice plaatje
$imgCopyrightSrc = imagecreatefrompng('pg.png');

// Copieer de copyright notice over het nieuwe plaatje heen
imagecopyresampled($imgDest, $imgCopyrightSrc, 345,305, 0, 0, $iCopyrightSizeX, $iCopyrightSizeY, $iCopyrightSizeX, $iCopyrightSizeY);

// Schrijf het nieuwe plaatje als een JPG in de map 'verkleind'
header("Content-Type: image/png");
imagePng($imgDest);

// imagejpeg($imgDest, 'verkleind/'.$sImage ,95);
?> 

------------------------------

zoals je al gezien zal hebben is dit echter alleen gebuikbaar voor fotos die op de server al staan.

de vraag is hoe kan ik deze aanpassen aan de html post vars en hoe dan terug als variable gaan bewaren naar sql toe ?

alvast bedankt
chris vermeiren

ps. ik ben Niet van plan om van systeem te veranderen zoals ik al op meerdere forums heb moete hooren. ik werk al zeker meer dan een jaar met dit sql systeem en ben helemaal niet van plan om van mysql weg te stappen.


Re: GD bewaar probleem
Gepost door: auke booij
Gepost op: 07-09-2003 20:17

als ze het daar niet weten... waarom hier dan wel???


info
Gepost door: chris vermeiren
Gepost op: 07-09-2003 20:20

mogleijk vinden zij dat GD libary niet bij het sql forum thuis hoord, php / sql freakq beantwoorden op het sql forum neem ik aan vandaar deze poging bij php algemeen. het enige dat ik moet weten is hoe ik van de gd libary een output naar een vak toe kan krijgen zodat ik deze anders kreeg als img die ik uit de html vars gebuikte. dus sql komt er niet bij te pass vinden zijn , in zekere zin hebben zij gelijk


Re: info
Gepost door: Sjokki
Gepost op: 07-09-2003 20:26

Als de jpeg in een string zit kan je imagecreatefromstring() gebruiken in plaats van imagecreatefromjpeg().
Om de output van imagejpeg() op te vangen kan je output-buffering gebruiken, zie http://nl3.php.net/manual/en/ref.outcontrol.php


probleempje met output_buffering()
Gepost door: chris vermeiren
Gepost op: 07-09-2003 21:04

het is dus eigelik de bedoeling om de standaard pic uit de html var te halen
die copyricht pic staat echter op de server. voor die opgelade pic te opene met de gd heb ik al een antwoord gevonden maar voor die output buffering zit ik toch steedsm et een probleem.

je hebt een oplaad scrpt de bedoeling is dat deze gewoon dus bij het opladen de pic toevoegd. het enige rara dat hier dus gewoon niet blijkt te kunnen of ik niet begrijk wat je dan hierboven bedoeld is dat er daarvoor geen opvang functie bestaat in de gd libary voor deze tegu naar een var te zetten om dan zo in een sql blob te gaan bewaren.

ook wil ik even informeren dat het dus Niet de bedoeling is om de foto weer te geven. hij moet bewerkt worden , bij het testen van de gd libary ben ik op dat script uitgekomen maar het moet de foto dus Niet weergeven, kan trouwens ook niet want daar boven en daaronder staat het vol html. ook bij meerdere oplaads tegelijk is het niet erg handig.

ik doe nog eens een poging tot een korte simpele samenvatting:

Opgelade pic -> GD opent pic ## bewerk / voegt logo toe ## gd geeft output --> output bewaren in sql

alvast bedankt


Re: probleempje met output_buffering()
Gepost door: Sjokki
Gepost op: 08-09-2003 00:28

Voorbeeldje output-buffering:

<?php

ob_start
();
echo
'foo';
$bar = ob_get_contents();
ob_end_clean();

?>

In de variabele $bar zit nu 'foo' en er is geen output geweest.


foutje bij sting / bestands type
Gepost door: chris vermeiren
Gepost op: 09-09-2003 23:11

bij het testen van het script zit ik helaas weer vast. deels bij suber globals, deels bij de sting inhoud, het sciprt hieronder gebuik ik momenteel. dat buffer systeem werk echter wel dus heb ik dat er nog even van tussen uitgelaten.

hieronder vind je het gebuikte script, daaronder krijg je dus de error.

<?
if ($HTTP_POST_FILES[file][tmp_name]) {

// Naam van het plaatje (zonder pad omdat het later nog eens gebruikt wordt)
$sImage = $_FILES[file][tmp_name];

// Haal de afmeting gegevens van het plaatje
$aData = getimagesize($sImage);
$iSizeX = $aData[0];
$iSizeY = $aData[1];

// Maak een nieuw truecolor-plaatje van de gewensde afmeting
$imgDest = imagecreatetruecolor(450, 360);

// Open het bestaande plaatje
$imgSrc = imagecreatefromstring($sImage);

// Copieer het bestaande plaatje naar het nieuwe plaatje (resizen)
imagecopyresampled($imgDest, $imgSrc, 0, 0, 0, 0, 450, 360, $iSizeX, $iSizeY);

// Haal de afmeting gegevens van de copyright notice
$aData = getimagesize('pg.png');
$iCopyrightSizeX = $aData[0];
$iCopyrightSizeY = $aData[1];

// Open het copyright notice plaatje
$imgCopyrightSrc = imagecreatefrompng('pg.png');

// Copieer de copyright notice over het nieuwe plaatje heen
imagecopyresampled($imgDest, $imgCopyrightSrc, 345,305, 0, 0, $iCopyrightSizeX, $iCopyrightSizeY, $iCopyrightSizeX, $iCopyrightSizeY);

// Schrijf het nieuwe plaatje als een JPG in de map 'verkleind'
header("Content-Type: image/png");
imagePng($imgDest);

// $test = output_buffering();
// imagejpeg($imgDest, 'verkleind/'.$sImage ,95);



// ob_start();
// echo 'foo';
// $bar = ob_get_contents();
// ob_end_clean();




}else{
?> 
<form method="POST" enctype="multipart/form-data" action="<?php echo"$HTTP_SERVER_VARS[PHP_SELF]" ?>">
<p align="center">
      <br>
      <input type="file" name="file" size="50"><br><br>
      <input type="submit" value="Opladen" name="B1"></p>
    </form>

<?
}
?> 



----------------------------
error:

Warning: imagecreatefromstring(): Data is not in a recognized format. in /home/powerg/public_html/gd/gd.php on line 16

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/powerg/public_html/gd/gd.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/powerg/public_html/gd/gd.php:16) in /home/powerg/public_html/gd/gd.php on line 33
PNG  IHDRhKl!IDATx}tTϽ3 $$PBwhe՘ l>Ԣ={ ...


wat heb ik nu weer fout gedaan ? :-$

alvast bedankt
chris


Recente topics
Website layout hu...
selecteer tekst t...
Weergaven form in...
Website Hulp gezocht
Refresh na invoeren.
Weeknummers selec...
jquery table sort...
Meerdere menu's i...
jQuery slide content
HTML SELECT met 2...
TCPDF geeft nie...
session_id(); > b...
Nieuwe regel
Variabele analyseren
heleboel foutmeld...
Recente Wiki's
JavaScript: High Performance
MagicQuotes
Escapen
Datamanipulatie
RabbitVCS
Continuous integration
Apache Veilig Maken
Charactersets
Het Wiel Uitgevonden:Formulieren
XSD

Meer wiki ...
Recente Scripts
Unieke `random` n...
twitterPHP 0.1 (a...
CSS minifier
PINI - PHP >>INI<...
Sudoku [StateSolver]
base64 file encoder
Session class

Meer scripts ...
Gehost door
RedKnot Hosting