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

php image upload script seems isn't working and i don't know why

tolkienarda
100+
P: 316
hi all

I am using a php script to try to upload images to my database. i know i am connecting to my database because the image title is being wirtten to the database. but the image isn't example:

if i upload the coke emblem from my desktop and type in 'coke'; when i look into the phpmyadmin i see that the text coke was written to the database but in the pix field it said [BLOB - 0 Bytes] below is the code if anyone has insight i would be grateful

this script is live at http://www.steppinupwebdesign.com/cms/imgupload.php
[PHP]
if ($_REQUEST[completed] == 1) {
// Need to add - check for large upload. Otherwise the code
// will just duplicate old file ;-)
// ALSO - note that latest.img must be public write and in a
// live appliaction should be in another (safe!) directory.
move_uploaded_file($_FILES['imagefile']['tmp_name'],"latest.img");
$instr = fopen("latest.img","rb");
$image = addslashes(fread($instr,filesize("latest.img")));
if (strlen($instr) < 149000) {
mysql_query ("insert into pix (title, imgdata) values (\"".
$_REQUEST[whatsit].
"\", \"".
$image.
"\")");
} else {
$errmsg = "Too large!";
}
}

// Find out about latest image

$gotten = @mysql_query("select * from pix order by pid desc limit 1");
if ($row = @mysql_fetch_assoc($gotten)) {
$title = htmlspecialchars($row[title]);
$bytes = $row[imgdata];
} else {
$errmsg = "There is no image in the database yet";
$title = "no database image available";
// Put up a picture of our training centre
$instr = fopen("../wellimg/ctco.jpg","rb");
$bytes = fread($instr,filesize("../wellimg/ctco.jpg"));
}

// If this is the image request, send out the image

if ($_REQUEST[gim] == 1) {
header("Content-type: image/jpeg");
print $bytes;
exit ();
}
?>

<html><head>
<title>Upload image</title>
<body bgcolor=white><h2>latest picture</h2>
<font color=red><?= $errmsg ?></font>
<center><img src=?gim=1 width=144><br>
<b><?= $title ?></center>
<form enctype=multipart/form-data method=post>
<input type=hidden name=MAX_FILE_SIZE value=150000>
<input type=hidden name=completed value=1>
browse: <input type=file name=imagefile><br>
comments: <input name=whatsit><br>
then: <input type=submit></form><br>


</body>
</html>
[/PHP]

thanks eric
Feb 14 '07 #1
Share this Question
Share on Google+
7 Replies


P: 99
why do you move the file if you store it in the database?

[PHP]
$image = addslashes(fread(fopen ($_FILES['imagefile']['tmp_name'],'r'),filesize($_FILES['imagefile']['tmp_name'])));
[/PHP]
Feb 14 '07 #2

tolkienarda
100+
P: 316
i am not sure this script is one i downloaded the script and read all of the documentation but i still can't make it work

eric
Feb 15 '07 #3

P: 99
you can try my code snippet to see if you get the image into the database.
Feb 15 '07 #4

tolkienarda
100+
P: 316
and here is a stupid question for you

where do i put your snippit of code

sorry for the stupidity

eric
Feb 15 '07 #5

P: 99
change this

[PHP]
$instr = fopen("latest.img","rb");

$image = addslashes(fread($instr,filesize("latest.img")));
[/PHP]

to this

[PHP]
$image = addslashes(fread(fopen ($_FILES['imagefile']['tmp_name'],'r'),filesize($_FILES['imagefile']['tmp_name'])));
[/PHP]

which version of php are you using? the rb parameter in fopen is only for php 5
Feb 15 '07 #6

tolkienarda
100+
P: 316
your'e awesome thanks alot it works

eric
Feb 15 '07 #7

P: 1
Just a couple questions on this script. it looks like your code snippet is pointing to a temp directory to store the image. are you actually storing the physical image in the db? and wouldnt that be kinda hoggish on the db? :p

im not really seeing any authorization on the db either or what db to throw it in. i guess this script is assuming you have a already completed a login process that has got ya a cookie.
Jun 30 '07 #8

Post your reply

Sign in to post your reply or Sign up for a free account.