You are here: Re: passing a filename & content type as image « PHP Programming Language « IT news, forums, messages
Re: passing a filename & content type as image

Posted by B Squared on 10/09/22 11:38

d wrote:
> "B Squared" <null@null.com> wrote in message
> news:BbadneSetuTRgkTenZ2dnUVZ_s-dnZ2d@scnresearch.com...
>
>>I'm trying to pass a filename (which is a jpeg image) to a php
>>function / file so that it will display. I know that its simple
>>to get PHP to display an image hardcoding in the filename. For
>>example, an href to this:
>>
>><?php
>> header("content-type:image/jpeg");
>> $filename = "image_file.jpg";
>> $im=ImageCreateFromJPEG($filename);
>> ImageJPEG($im);
>>?>
>
>
> Why don't you just use readfile() instead of imagecreatefromjpeg? You only
> really need to use the image functions if you're manipulating images, not if
> you're just displaying them.

Excellent suggestion. I tried this, and it does just what I need.

>
>>But when I have a filename I create dynamically in PHP and try to
>>call a php function with the filename, for example calling:
>>
>><?php
>> display_jpeg_file($image_path);
>>?>
>>
>><?php
>> function display_jpeg_file($filename) {
>> header("content-type:image/jpeg");
>> $im=ImageCreateFromJPEG($filename);
>> ImageJPEG($im);
>> }
>>?>
>>
>>I get the "cannot modify header information" error. The error
>>message always refers to a php function early in the phmtl page.
>>So somehow it sees this function as a continuation of the existing
>>html document. How do I arrange the function call to my display
>>function so that it works? Or, if my approach is all wrong, what
>>is the correct approach? The important part is I have a filename
>>generated in PHP that I want to display.
>
>
> You can't send headers if you've already outputted (unless you use output
> buffering).Why are you outputting something before the image?

I want to place some text above the image, and control the font and
background color. Typical HTML to pretty up the appearance of the page.

> The image
> won't work if you have any output before or after it in the same document.
> If you want to get a PHP page to show an image, include a standard HTML
> <img> tag with the src pointing to your PHP script. If you stil need to
> pass it another filename, you can put that in the query string
> (base64_encode it so it's url-safe, and base64_decode it the other end to
> get the filename out).

I understand in part. Here's the deal. The filepathname for the image
to be displayed comes from a database query that's inside a PHP script.
So it really is dynamically generated. So, referring to your method of
encoding the filename, it looks like (if I understand you) that I need
to pass the data I retrieve inside PHP back out to html, so that html
can format the strings, and, using the <img> tag, call another PHP
file to display the image. It seems a bit complicated, but I can do
that. How do I pass the strings from PHP to html. A simple example
of how to do this would be *greatly* appreciated. If I understand
you, this is the only part of the solution I don't know how to do.

Thanks in advance.

B Squared

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация