By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,130 Members | 2,228 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,130 IT Pros & Developers. It's quick & easy.

passing a filename & content type as image

P: n/a

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);
?>

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.

Thanks in advance for any help.

B Squared

================================================== =============
Self esteem, n. An erroneous appraisement
-- Ambrose Bierce, The Devils Dictionary


Jan 26 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a

B Squared wrote:
I'm trying to pass a filename (which is a jpeg image) to a php
function / file so that it will display.


I think you can simply use readfile() to read the file and pass it
through to the browser.

Jan 26 '06 #2

P: n/a
d
"B Squared" <nu**@null.com> wrote in message
news:Bb******************************@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.
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? 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).

does that make sense?
Thanks in advance for any help.

B Squared
dave
================================================== =============
Self esteem, n. An erroneous appraisement
-- Ambrose Bierce, The Devils Dictionary

Jan 26 '06 #3

P: n/a
d wrote:
"B Squared" <nu**@null.com> wrote in message
news:Bb******************************@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
Jan 27 '06 #4

P: n/a

Never mind my last comment,

I got it figured out.

B Squared.
"B Squared" <nu**@null.com> wrote in message
news:Bb******************************@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.

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? 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).

does that make sense?

Thanks in advance for any help.

B Squared

dave

================================================ ===============
Self esteem, n. An erroneous appraisement
-- Ambrose Bierce, The Devils Dictionary


Jan 28 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.