一段上传图片,并在MYSQL中记录路径的代码求指正

http://bbs.csdn.net/topics/390144786

只上传一张图片的功能已经实现,上传两张图片就实现不了,代码段比较简单,麻烦大家指导一下:


上传图片的表单:

PHP code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
if  ( isset( $_GET [ 'action' ]) &&  $_GET [ 'action' ] ==  "save"  )
{
include_once ( 'conn.php' );   //连接数据库
include_once ( 'uploadclass.php' ); //这个文件在下文会给出
 
$pic = $uploadfile ;    //第一张图片,已经可以正常上传
$pic2 = $uploadfile2 //第二张,上传不了
 
$sql = "insert into product (pic,pic2) values ('$pic','$pic2')" ;
$result =mysql_query( $sql , $conn );
if    (! $result )
{
       echo  mysql_error();
       echo  $sql ;
       exit ;
}
else
{
       echo "<Script>window.alert('congratulations,the product data inserted successful');location.href='index.php'</Script>" ;
 
mysql_close();
}
 
?>
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns= "http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=UTF-8"  />
<title>Administrator  for  upload the product resource</title>
</head>
<body>
 
<form method= "post"  action= "?action=save"  enctype= "multipart/form-data"  >
 
Images_1:
          <input name= "file"  type= "file"  value= "Browse"  />
          <input type= "hidden"  name= "MAX_FILE_SIZE"  value= "2000000"  />
          <br />
Images_2: 
          <input name= "file2"  type= "file"  value= "Browse"  />
          <input type= "hidden"  name= "MAX_FILE_SIZE"  value= "2000000"  />
         <p />
         
       <input type= "submit"  value= "upload this resource"  name= "upload"  />
 
</form>
</body>
</html>


上传程序:uploadclass.php(此程序只能上传图片1,如果要能上传图片2,需要怎么加代码呢?)
PHP code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
$uploaddir  "../images/upfiles/" ;
$type = array ( "jpg" , "gif" , "bmp" , "jpeg" , "png" );
$patch = "aloesky/" ;
 
function  fileext( $filename )
{
return  substr ( strrchr ( $filename '.' ), 1);
}
 
function  random( $length )
{
$hash  'CR-' ;
$chars  'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz' ;
$max  strlen ( $chars ) - 1;
mt_srand((double)microtime() * 1000000);
for ( $i  = 0;  $i  $length $i ++)
{
$hash  .=  $chars [mt_rand(0,  $max )];
}
return  $hash ;
}
 
$a = strtolower (fileext( $_FILES [ 'file' ][ 'name' ]));
if (!in_array( strtolower (fileext( $_FILES [ 'file' ][ 'name' ])), $type ))
{
$text =implode( "," , $type );
echo  "You can only upload the following types of files:" , $text , "<br /> <a href='upload_pro.php'>return and try again?click me</a>" ;
exit ;
}
else {
$filename = explode ( "." , $_FILES [ 'file' ][ 'name' ]);
do
{
$filename [0]=random(10); 
$name =implode( "." , $filename );
//$name1=$name.".Mcncc";
$uploadfile = $uploaddir . $name ;
}
 
while ( file_exists ( $uploadfile ));
 
if  (move_uploaded_file( $_FILES [ 'file' ][ 'tmp_name' ], $uploadfile ))
{
if ( is_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ]))
{
 
echo  "the Images Upload failed!" ;
}
else
{
echo  "<center>Your file has been uploaded: </center><br><center><img src='$uploadfile' /></center>" ;
echo  "<br><center><a href='upload_pro.php'>Continue to upload</a></center>" ;
}
}
}
?>

<input name="file[]" type="file" value="Browse" />
这样当成数组就好处理了。
php端: print_r($_FILES['file']);  //得到一个二维数组,只需处理数组即可.

在这个表单程序里,我还没看懂,PHP是怎样把那文件的路径写进mysql的。
基本上是三步实现:
PHP code
?
1
2
3
$filename  $_FILES [ 'upload' ][ 'name' ]; //获取来自表单的文件名
$filename  = time() . mt_rand(1000, 9999) .  '.'  . trim( strtolower ( substr ( strrchr ( $filename '.' ), 1))); //对文件进行重命名,以免发生重复文件
move_uploaded_file( $_FILES [ 'upload' ][ 'name' ],  $filename ); //把文件移动到指定的路径

这是抄的哪的? while(file_exists($uploadfile)); 将造成死循环
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值