You are on page 1of 7

nhng bi trc, chng ta c dp nghin cu tng ng dng nh bi vic kt hp PHP

v Mysql. Trong bi ny, chng ta s tip tc tm hiu phng php xy dng mt trang
upload nhiu hnh nh nh th no. V lu chng vo c s d liu ra sao trong lp trnh
php.
M hnh ny l rt cn thit i vi cc h thng. Bi qua ngi s dng c th thao tc
v upload nhng hnh nh i km vi h thng ca h nh tin tc, sn phm,
u tin, ta tin hnh xy dng c s d liu vi bng images nh sau (xem li bi 9: c
bn v ngn ng sql v mysql).
CREATE TABLE `images` (
`img_id` INT( 10 ) UNSIGNED NO
`img_url` VARCHAR( 255 ) NOT
`img_name` VARCHAR( 150 ) N
);

1
2
3
4
5
CREATE TABLE `images` (
`img_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`img_url` VARCHAR( 255 ) NOT NULL ,
`img_name` VARCHAR( 150 ) NOT NULL
);
Nh vy, ti c bng images vi 3 ct thuc tnh l:
img_id dng lu kha ca tng hnh
img_url dng lu ng dn vo h thng
img_name dng lu tn hnh nh.
ng dng ca chng ta cng rt cn s ty bin v d s dng. Sao cho ngi dng c th
hon ton thao tc.
V d: nu c 2 hnh, h ch mun to ra 2 ch chn file th s ch khai bo l 2. V
ngc li nu l n hnh, h s to c n file la chn. lm c iu ny, trc tin ta
cn to 1 form nh cho php ngi dng nhp vo s lng file m h mun thao tc. Vy
ti khi to file c tn upload.php vi m lnh form nh sau:
<f orm action="upload.php" meth
Enter your Image: <input type="t
<input type="submit" name="ok_
</f orm>

1
2
3
4
<form action="upload.php" method="post">
Enter your Image: <input type="text" name="txtnum" value="<?php echo
$_POST['txtnum']; ?>" size="10" />
<input type="submit" name="ok_num" value="Accept" />
</form>
Sau khi ngi dng nhn nt accept th cng l lc chng ta to ra s field upload theo
yu cu ca h. Vy, ta c code x l bn di nh sau: (xem li bi 4: x l gi tr trn
form).
<?php
if (isset($_POST['ok_num']))
{
$num=$_POST['txtnum'];
echo "<hr />";

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['ok_num']))
{
$num=$_POST['txtnum'];
echo "<hr />";
echo "Ban dang chon $num file upload<br />";
echo "<form action='doupload.php?file=$num' method='post'
enctype='multipart/form-data'>";
for($i=1; $i <= $num; $i++)
{
echo "<input type='file' name='img[]' /><br />";
}
echo "<input type='submit' name='ok_upload' value='Upload' />";
echo "</form>";
}
?>
on code ny s dng vng lp for vi iu kin l bin $i s nh hn s file m h nhp
vo. ng thi, vic upload thnh cng ti form ta cng cn thm on code :
enctype=multipart/form-data.
S lng field s lp theo yu cu ca ngi dng. Do vy. ti name ca th input, ta s s
dng mng lu thng tin. S dng name=img[], c ngha l mi ln lp v mi ln
ngi dng chn file th mng img s thm 1 kha tng ng. (xem li bi 6: tng quan v
mng v cc hm h tr)
V cui cng l nt submit thc thi cng vic upload v gi ti trang
doupload.php?file=$num (ch r s file c th do ngi dng nhp ti trang doupload).

Vy ton b code ca trang upload ny s nh sau:
<f orm action="upload.php" meth
Enter your Image: <input type="t
<input type="submit" name="ok_
</f orm>
<?php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="upload.php" method="post">
Enter your Image: <input type="text" name="txtnum" value="<?php echo
$_POST['txtnum']; ?>" size="10" />
<input type="submit" name="ok_num" value="Accept" />
</form>
<?php
if(isset($_POST['ok_num']))
{
$num=$_POST['txtnum'];
echo "<hr />";
echo "Ban dang chon $num file upload<br />";
echo "<form action='doupload.php?file=$num' method='post'
enctype='multipart/form-data'>";
for($i=1; $i <= $num; $i++)
{
echo "<input type='file' name='img[]' /><br />";
}
echo "<input type='submit' name='ok_upload' value='Upload' />";
echo "</form>";
}
?>
Ti trang thc hin nhim v doupload.php ta cn kim tra xem, ngi dng c nhn nt
upload t trang bn kia hay khng ? Nu c ta s x l cng on upload y, nu khng ta
cn thng bo li cho ngi dng v yu cu h chn file.
<?php
if (isset($_POST['ok_upload']))
{
//th?c thi upload
}

1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_POST['ok_upload']))
{
//thc thi upload
}
else
{
echo "Vui long chon hinh truoc khi truy cap vao trang nay";
}
?>
Nh vy, khi ngi dng nhn upload, ta s ly c tham s l bin $num t lin kt
$_GET[file'] m ta thit lp trn phn form action ca file upload trang trc.
Bin $num ny dng thc thi vic upload v tun t ly cc thng tin ca file.
upload file t my ln h thng ta cn s dng hm:
move_uploaded_file(tn_file_tm,ng dn ti h thng).
C th din gii nm na cng vic ca hm ny nh sau:
Ngay sau khi ngi dng nhn upload, h thng s to ra 5 tham s ng vi tng file. C
th l tn tm (tmp_name), tn gc (name), kch thc (size), nh dng mime (type) v
li (error) nu c.
Khc vi kiu nhp liu thng thng, khi chng ta s dng <input type=file name=ten>
th lc ny s pht sinh mt bin mi trng mi l $_FILES[ten'] v d nhin n s i
km vi 5 tham s c th trn.
V d: $_FILES[ten'][name'] //Ly ra tn gc ca file.
Vy ng vi c php upload trn ta s c:
move_uploaded_file($_FILES['img']['tmp_name'],data/.$_FILES['img']['name']);
C php ny s t ng upload hnh nh ln th mc data trn h thng. Vy ta cn phi
to th mc data ngang cp vi 2 file upload v doupload. Nu l host tht, bn cn
CHMOD th mc l 777 (cho php th mc c ton quyn) th mi thc thi upload file
c.
Trong tnh hung ca chng ta, v l upload mt lc nhiu file, nn lc ny ta phi s dng
tham s mng ti trang upload ta khi to. Vy ng vi bin $num ta nhn t upload
trn ta s trin khai code n gin nh sau:
<?php
f or($i=0; $i< $num; $i++)
{
move_uploaded_f ile($_FILES['im
$url="data/".$_FILES['img']['nam

1
2
3
4
5
6
7
8
<?php
for($i=0; $i< $num; $i++)
{
move_uploaded_file($_FILES['img']['tmp_name'][$i],"data/".$_FILES['img']['name'][$i]
);
$url="data/".$_FILES['img']['name'][$i];
$name=$_FILES['img']['name'][$i];
}
?>
Vi bin $i l s lng tng ln theo vng lp. V mng lun bt u bi kha l 0 nn ta
cn phi thit lp khi to bin $i vi gi tr l 0. Bin $url v $name l ng dn hnh
nh v tn gc ca tm hnh c s dng lu vo CSDL.
K ti, ta cn lu thng tin hnh nh tng ng vo c s d liu. lm c iu ny, ta
cn kt ni CSDL vi c php sau: (xem li bi 10: kt hp php & mysql trong ng dng
website).
<?php
$conn=mysql_connect("localho
mysql_select_db("images",$con
?>

1
2
3
4
<?php
$conn=mysql_connect("localhost","root","root") or die("can't connect your database");
mysql_select_db("images",$conn);
?>
Nh vy mi khi upload thnh cng mt hnh nh, ta phi thm hnh nh vo CSDL
nh sau:
<?php
$sql="insert into images(img_url
mysql_query($sql);
?>

1
2
3
4
<?php
$sql="insert into images(img_url,img_name) values('$url','$name')";
mysql_query($sql);
?>

Sau khi thm vo CSDL ta cn hin th thng tin v hnh nh va upload cho ngi
dng bit h upload thnh cng.
Khi ta s dng mt bin $site lu ng dn gc hin th trn textbox.

Vy hon chnh code cho file doupload.php ny nh sau:
<?php
$site="http://www.qhonline.inf o
if (isset($_POST['ok_upload']))
{
$num=$_GET['f ile'];

1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
<?php
$site="http://www.qhonline.info";
if(isset($_POST['ok_upload']))
{
$num=$_GET['file'];
echo "<h3>Demo Images Script - Copyright by QHOnline.Info</h3>";
$conn=mysql_connect("localhost","root","root") or die("can't connect your database");
mysql_select_db("images",$conn);
for($i=0; $i< $num; $i++)
{
move_uploaded_file($_FILES['img']['tmp_name'][$i],"data/".$_FILES['img']['name'][
$i]);
$url="data/".$_FILES['img']['name'][$i];
$name=$_FILES['img']['name'][$i];
$sql="insert into images(img_url,img_name) values('$url','$name')";
mysql_query($sql);
echo "Upload Thanh cong file <b>$name</b><br />";
echo "<img src='$url' width='120' /><br />";
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
echo "Images URL: <input type='text' name='link' value='$site/$url' size='35' /><br
/>";

}
mysql_close($conn);
}
else
{
echo "Vui long chon hinh truoc khi truy cap vao trang nay";
}
?>
Download ton b m ngun ca bi ny ti y.

You might also like