Php Uploadscript实际上并不保存文件

Php Uploadscript实际上并不保存文件,php,Php,我需要上传一些信息,如名称,图像到数据库使用PHP 我试着这样做: Add\u tour.php: <?php $app=new app(); $targetDir = "/upload/"; if(isset($_POST['tour_name'])) { $tour_name=isset($_POST['tour_name'])?trim($_POST['tour_name']):''; $_SESSION['tour_name']=$tour_name; } i

我需要上传一些信息,如名称,图像到数据库使用PHP

我试着这样做:

Add\u tour.php:

<?php
$app=new app();  
$targetDir = "/upload/";
if(isset($_POST['tour_name'])) {
    $tour_name=isset($_POST['tour_name'])?trim($_POST['tour_name']):'';
    $_SESSION['tour_name']=$tour_name;
}

if(isset($_POST['tour_img'])) {
    $tour_img=isset($_POST['tour_img'])?trim($_POST['tour_img']):'';
    $_SESSION['tour_img']=$tour_img;
    move_uploaded_file($_FILES["tour_img"]["tmp_name"],$targetDir);
}

$ID=$app->add_tour();
?>

<form action="/admin/add_tour.php" method="post">     
    <input type="text" class="form-control" id="tour_name" name="tour_name">
    <input type="file" data-toggle="custom-file-input" id="tour_img" name="tour_img">                
</form>

问题是,只有文件名才会添加到数据库中。文件本身未上载到“上载”目录。

您的代码中有一个错误:

move_uploaded_file($_FILES["tour_img"]["tmp_name"], $targetDir);
您还忘了传递文件名。代码应为:

move_uploaded_file($_FILES["tour_img"]["tmp_name"], $targetDir . $_FILES["tour_img"]["name"]);

还要确保标记中有
enctype=“multipart/form data”

在表单中使用以下属性

enctype=“多部分/表单数据”

我不知道
$this->db->escape()
中有什么,但这肯定不会阻止SQL注入。使用事先准备好的陈述instead@Cid
$this->db->escape()
是用于转义查询输入的codeigniter函数。@Cid和“代码应该是”-不,它应该不是<代码>$\u文件[“tour\u img”][“name”]是由客户端指定的,因此它不应该被信任,至少在没有任何进一步验证的情况下是如此。我现在在第26行的/admin/add\u tour.php中得到了未定义的索引:tour\u img。第26行是:移动上传的文件($文件[“tour\u img”][“tmp\u name”],$targetDir.$文件[“tour\u img”][“name”]);这意味着你不能在这里得到文件,你能试着打印$u文件,看看它是否给你打印了一个文件数组吗?我都做了。我通过添加if(isset($\u POST['submit'])修复了未定义的索引错误。我还添加了您提到的标签,现在DB中没有添加任何内容(甚至图像名称)。我相信问题出在app.class.phpI文件中,我仍然陷在这个问题中。有什么想法可以试试吗?
move_uploaded_file($_FILES["tour_img"]["tmp_name"], $targetDir . $_FILES["tour_img"]["name"]);