[PHP] uitlezen PDF data BLOB veld mysql

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
[Sorry verkeerde topic, my fault!]

Hi,

Ik heb het volgende probleem. Ik post een PDF file weg naar een mediumblob veld in mysql db.
Als ik via phpmyadmin staat alles er schijnbaar netjes in. binaire data van rond de 150kb. Dit klopt met het bestand.

Zodra ik de PDf wil uitlezen gaat er iets fout. De PDF wordt geopend,ik zie ook het juiste aantal pagina's maar ze blijven wit en krijg een foutmelding van acrobat.

Zit er een fout in mijn header informatie? Ik kom er in ieder geval niet uit. Ook als ik de data via phpmyadmin er inzet, dus zonder het gebruik van mijn eigen script heb ik dezelfde fout. Dus het moest haast wel aan de uitlees pagina liggen.

Dit is mijn script:

$sql_select2 = mysql_query( "SELECT * FROM intranet_berichten WHERE id = '$id'");

while ($row2 = mysql_fetch_array($sql_select2))
{
$content = $row2["pdf"];
$size = $row2["pdfsize"];
$name = $row2["pdfname"];
};


header("Content-length: $size");
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=$name");


echo $content;
exit();

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Probeer het resultaat eens niet te openen in acrobat, maar te downloaden en dan te vergelijken met het origineel (hiervoor zijn eventueel wel binaire diff tooltjes voor). Dat lijkt me eigenlijk de meest voor de hand liggende manier om te kijken wat er nu eigenlijk verkeerd gaat.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
thnx voor je reactie, maar het bestand is tot op de byte nauwkeurig even groot. Besides that, geeft hij dezelfde fout als ik wegpost via phpmyadmin. Dus ik ga er eigenlijk vanuit dat de data juist in de db staat.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik zie geen enkele vorm van escaping en un-escaping bij het saven/retrieven van je binary data ?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dat het bestand even groot is betekend niet dat het ook daadwerkelijk hetzelfde is. Sterker nog, aangezien het origineel wel werkt en de door je script getrokken versie niet is het wel zeker dat de bestanden anders zijn.

Dat de afmeting hetzelfde is komt omdat je de grootte meegeeft in de headers. Ik weet het niet zeker, maar volgens mij wordt data die daarna nog verzonden wordt gewoon genegeerd. Het zou best kunnen zijn dat door 1 of andere magic quotes instelling van php er allemaal slashes aan je binaire data toegevoegd worden, of dat je nog ergens zelf een teken extra meestuurt (door een lege regel ergens). Vandaar dat ik voorstel om niet enkel de grootte in bytes te vergelijken, maar ook de inhoud.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
Verwijderd schreef op maandag 02 juni 2008 @ 13:36:
Ik zie geen enkele vorm van escaping en un-escaping bij het saven/retrieven van je binary data ?
Is dat nodig dan? Er wordt toch geen code gegenereerd?

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Ik verplaats hem naar Programming

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

SamuraiP1zzaCat schreef op maandag 02 juni 2008 @ 13:56:
[...]


Is dat nodig dan? Er wordt toch geen code gegenereerd?
Ja, dat is nodig.
Vaak staat GPC Magic Quotes aan en dan wordt data die je de database in plempt wel ge-addslashed, maar als je het er uit haalt zonder te strip slashen is je data escaped en werkt het niet goed.

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

mysql_real_escape_string gebruiken we voor binaire data ;) niet add/stripslashes dus McKaamos ;)

Verder zou je die blob ook gelijk kunnen gzippen. scheelt je weer storage ruimte in je db :)
(zorg dan wel dat je kolomnaam duidelijk aangeeft dat er ge-gzipte data instaat :P )

[ Voor 61% gewijzigd door SchizoDuckie op 02-06-2008 14:57 ]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • SamuraiP1zzaCat
  • Registratie: Augustus 2005
  • Laatst online: 07-04 20:21
McKaamos schreef op maandag 02 juni 2008 @ 14:28:
[...]

Ja, dat is nodig.
Vaak staat GPC Magic Quotes aan en dan wordt data die je de database in plempt wel ge-addslashed, maar als je het er uit haalt zonder te strip slashen is je data escaped en werkt het niet goed.
Ik heb mijn content ge strip slashed, stripslashes($content); Maar toch werkt het nog niet.
Ik heb een hele simpele test pdf gemaakt met alleen het woord test erin. Worden er dan toch slashes aangemaakt ?
Ik las ook dat het vanaf PHP 6 get_magic_quotes_gpc niet meer ondersteund word ?

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Ik weet niet wat je met je topic wilt bereiken, maar Janoz heeft al uren geleden de enige manier aangegeven om achter de oorzaak van het probleem te komen. Sindsdien heb je enkele posts gedaan, waaruit blijkt dat je wat geprobeerd hebt met escaping, maar wat verder geen enkele informatie verschaft over de mogelijke oorzaak van het probleem.
Pagina: 1