PHP mysql成功上传文件到一个表而不是其他

时间:2017-05-15 00:33:16

标签: php mysql database mysqli file-upload

我正在尝试将文件上传到数据库(使用php和mysql)。我可以成功上传文件并将其路径保存在一个表中,但是当我尝试将文件上传到另一个表时,我收到一条错误消息:move_uploaded_file:无法打开流。但是,如果我创建另一个数据库,我可以再次成功上传该文件。我是否只能将文件上传到一个表而不是同一个数据库中的多个表?由于我的项目设计,我想将文件上传到同一个数据库中的2个表,有人可以告诉我该怎么做吗? 这是可以成功上传文件的代码,表的名称是照片:

    <?php
    include('config.php');
        $file=$_FILES['image']['tmp_name'];
        $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
        $image_name= addslashes($_FILES['image']['name']);                   
        move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" $_FILES["image"]["name"]);    
        $location="photos/" . $_FILES["image"]["name"];
        $description=$_POST['description'];
        $save=mysql_query("INSERT INTO photos (location, description) VALUES ('$location','$description')");


        }
    ?>

我尝试通过以下代码将文件上传到另一个表。我只是将照片更改为photos2,photos2是另一个表的名称

<?php
    include('config.php');
        $file=$_FILES['image']['tmp_name'];
        $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
        $image_name= addslashes($_FILES['image']['name']);                   
        move_uploaded_file($_FILES["image"]["tmp_name"],"photos2/" $_FILES["image"]["name"]);

    $location="photos2/" . $_FILES["image"]["name"];
    $description=$_POST['description'];
    $save=mysql_query("INSERT INTO photos2 (location, description) VALUES ('$location','$description')");                   
 }
?>

我收到以下错误: 警告:move_uploaded_file:无法打开流:没有这样的文件或目录 move_uploaded_file():无法将'C:\ XAMPP \ tmp \ php1793.tmp'移动到'photos2 / 1.png'

另外,我知道mysql已被弃用,我需要将其更改为mysqli,我将来会这样做,现在我只想知道如何将文件上传到同一个数据库中的2个表。

更新:我认为我提出问题的方式导致了我不必要的困惑。这就是我所说的“上传到2个桌子”:我的网站上有两个页面,让我们称之为页面A和页面B,用户可以在页面A和页面B上传照片,从页面A上传的照片只能看到在页面A上,同样地,从页面B上传的照片只能在页面B上看到。因此,创建2个单独的表来存储照片是有意义的。如果它们存储在同一个表中,那么在每个页面上,当我(“SELECT * FROM photos”)时,查询将搜索从另一个页面上传的所有照片,这是不必要的。我不需要同时将同一张照片上传到两个不同的表格。

1 个答案:

答案 0 :(得分:0)

使用move_uploaded_file时,文件已被移动。因此,当您尝试运行第二位代码时它将不存在......这是相当明显的。试试这个:

<?php
include('config.php');
    $file=$_FILES['image']['tmp_name'];
    $image= addslashes(file_get_contents($_FILES['image']['tmp_name']));
    $image_name= addslashes($_FILES['image']['name']);                   
    move_uploaded_file($_FILES["image"]["tmp_name"],"photos/" $_FILES["image"]["name"]);    
    copy('photos/'.$_FILES['image']['name'],'photos2/'.$_FILES['image']['name']);
    $location="photos/" . $_FILES["image"]["name"];
    $description=$_POST['description'];
    $save=mysql_query("INSERT INTO photos (location, description) VALUES ('$location','$description')");
    $save=mysql_query("INSERT INTO photos2 (location, description) VALUES ('$location','$description')");
    }
?>