更新数据库中的文件并上传文件

时间:2018-03-02 02:39:19

标签: php

提前感谢您的帮助,我需要制作一个系统,我可以将文件上传并更新到我的数据库记录中。为此我做了这个代码,但由于某种原因我似乎无法看到我做错了我可以更新“状态等”但文件没有上传到我想要的目录,我的数据库中的记录也丢失了,所以其余的工作正常,除了文件本身,没有得到更新。这是我的代码,再次提前感谢!

<?php
                    if(isset($_POST['submit_btn'])) 
                    {
                    if(move_uploaded_file($_FILES['Filename']['tmp_name'], $target)) {
                    require 'modules/conn.php';
                    $target = "../account-files/";
                    $target = $target . basename( $_FILES['Filename']['name']);
                    }


                    $id = $_REQUEST['id'];
                    $status = $_REQUEST['status'];
                    $counts = $_REQUEST['counts'];
                    $Filename=basename( $_FILES['Filename']['name']);
                    $query = mysqli_query($conn,"UPDATE files SET id ='".$_POST['id']."', status ='".$_POST['status']."', counts ='".$_POST['counts']."', Filename ='".$_POST['Filename']."' WHERE id = '".$id."'") or die(mysqli_error($conn));
                    header("location: ../my-account/");
                    }
                    ?>

其他所有内容都在我的数据库中更新,但正如我所说,文件和文件名的记录没有,也没有上传到我的目录。请帮助我,非常感谢一个例子。

更新的代码我可以将记录存入数据库,但仍然无法上传到目录中。

$target = "../account-files/";
$target = $target . basename( $_FILES['Filename']['name']);
if(isset($_POST['submit_btn'])) 
{
move_uploaded_file($_FILES['Filename']['tmp_name'], $target);
require 'modules/conn.php';
$id = $_REQUEST['id'];
$status = $_REQUEST['status'];
$counts = $_REQUEST['counts'];
$Filename=basename( $_FILES['Filename']['name']);
$query = mysqli_query($conn,"UPDATE files SET id = $id, status = '$status', counts = $counts , Filename = '$Filename' WHERE id = '$id'") or die(mysqli_error($conn));
header("location: ../my-account/");
}

这最后一个解决方案是正确的,我希望我也可以为其他成员做出贡献,请在正确回复我的帖子后看到解决方案学分,那家伙摇滚!大拇指那么错误是什么?简单,我的路径是错的......

这个错了:

$target = "../account-files/";

这是正确的并且修复了所有

$target = "account-files/";

2 个答案:

答案 0 :(得分:0)

你犯了一些错误:

  1. 如何先上传文件,然后确定目标
  2. 为什么要更新ID?而id是它的主键
  3. if(isset($_POST['submit_btn'])){
       $target = "../account-files/"; 
       $fname = $_FILES['filename']['name'];
       if(!empty($target) && !empty($fname)){
        move_uploaded_file($_FILES['filename']['tmp_name'], $target.$fname);
       }
    }
    

答案 1 :(得分:0)

你真的有POST [&#39;文件名&#39;]?我认为你应该把变量放在你的查询而不是.POST

尝试以下代码:

  if(isset($_POST['submit_btn'])) 
  {
   $target_dir = "../account-files/";
   $target_file = $target_dir . basename( $_FILES['Filename']['name']);
   move_uploaded_file($_FILES['Filename']['tmp_name'], $target_file);
   require 'modules/conn.php';

   $id = $_REQUEST['id'];
   $status = $_REQUEST['status'];
   $counts = $_REQUEST['counts'];
   $Filename=basename( $_FILES['Filename']['name']);
   $query = mysqli_query($conn,"UPDATE files SET id = $id, status = 
  '$status', counts = $counts , Filename = '$Filename' WHERE id = 
  '".$id."'") or die(mysqli_error($conn));
  header("location: ../my-account/");
 }                 

另请确保您的表单标记上有enctype="multipart/form-data"