图像上传数据库中的任何用户

时间:2013-11-26 16:01:41

标签: php mysql

我有两张桌子:

首先和父母“注册” register

,第二个是

userimg

error on Query

我想要的是创建一个脚本,其中一个用户具有唯一SN,每当上传一张照片时,pic的路径保存在“userimg”i user SN中作为userimg中的外键

代码在

之下
if(isset($_POST['SN']))
{
    $filename = $_FILES['upload_image']['name'].$user_SN;
    $filesize = $_FILES['upload_image']['size'];
    $filetype = $_FILES['upload_image']['type'];    
    $target_path ="uploads/". basename( $filename );

    if (move_uploaded_file($_FILES['upload_image']['tmp_name'], $target_path))
    {
        $result = $target_path ;
        $sql="INSERT INTO userimg (src, size, type,SN ) VALUES ('".$result."', '".$filesize."','".$filetype."','".$user_SN."')";
        echo $sql." ";
        echo $filesize." ";
        echo $filetype." ";
        $inst=mysql_query($sql);

        if (!$inst)
        {   
            print "error";
        }
    }
}

这个脚本适用于一张图片,但我想要的是用户多次上传(就像一个图库)并在我的第二个表中保存该路径。

我是否需要为每个SN意味着用户创建一个userimg表?我错过了什么?

[编辑]

问题解决了。错误是在userimg中使SN成为一个独特的,我重命名的图像(代码如下) - 感谢Tuhin!

if(isset($_POST['SN']))
{
    $filename = $_FILES['upload_image']['name'];
    $filesize = $_FILES['upload_image']['size'];
    $filetype = $_FILES['upload_image']['type'];
    $timeSt = time();
    $info = pathinfo($filename);
    $name = $info['filename'];
    $format = $info['extension'];
    $target_path ="uploads/".basename( $name )."_".$user_SN."_".$timeSt.".".$format;
}

1 个答案:

答案 0 :(得分:1)

如果同一个用户(意味着相同的SN值)尝试上传相同的图像(意味着他已经在此应用中使用相同的图像名称上传),那么第二个表中的'src'列将是相同的。此外,如果上传的文件夹第一个图像文件将被更新的文件替换。这就是为什么我建议你添加时间戳并重命名上传的图像文件并将其存储到数据库中。