如何在PHP5中上传文件并在数据库中保存文件名(MySQL)

时间:2018-09-30 02:32:00

标签: php mysql file-upload php-5.6

新手在这里使用PHP并尝试学习。我有一个似乎无法正常工作的php代码……至少其中一部分。

我想将文件名存储在数据库中并将文件存储在文件夹中。 这些是我一直在努力的代码的一部分...

HTML:

<div class="form-group">
    <img src="images/<?php if(file_exists('images/avatar/'.$session->userinfo['avatar'])){ echo 'avatar/'.$session->userinfo['avatar']; }else{ echo 'avatar1.png';}?>" class="img-circle" width="150">
    <input type="file" name="avatar" class="form-control"/>

    <label class="sr-only">Email</label>
    <input type="text" name="email" maxlength="50" value="<?php if($form->value("email") == ""){ echo $session->userinfo['email']; }else{ echo $form->value("email"); }?>" class="form-control"  placeholder="Email Address">

    <label class="sr-only">Current Password</label>
    <input type="password" name="curpass" maxlength="30" value="<?php echo $form->value("curpass"); ?>"  class="form-control custom-middle"  placeholder="Current Password">

    <label class="sr-only">New Password</label>
    <input type="password" name="newpass" maxlength="30" value="<?php echo $form->value("newpass"); ?>" class="form-control"  placeholder="New Password">
  </div>

  <div class="form-group">
    <textarea class="form-control" name="bio" rows="5" maxlength="250" placeholder="Bio" style="resize: none;"><?php if($form->value("bio") == ""){ echo $session->userinfo['bio']; }else{ echo $form->value("bio"); }?></textarea>
  </div>

  <input type="hidden" name="subedit" value="1">
  <input class="btn btn-lg btn-primary btn-block" type="submit" value="Save Changes">

</form>

DATABASE.PHP (updateUserField()函数的来源)

function updateUserField($username, $field, $value){
  $q = "UPDATE ".TBL_USERS." SET ".$field." = '$value' WHERE username = '$username'";
  return mysql_query($q, $this->connection);
}

PROCESS.PHP

function procEditAccount(){
  global $session, $form;
  /* Account edit attempt */
  $retval = $session->editAccount($_POST['curpass'], $_POST['newpass'], $_POST['email'], $_POST['bio'], $_POST['avatar']);

  /* Account edit successful */
  if($retval){
     $_SESSION['useredit'] = true;
     header("Location: ".$session->referrer);
  }
  /* Error found with form */
  else{
     $_SESSION['value_array'] = $_POST;
     $_SESSION['error_array'] = $form->getErrorArray();
     header("Location: ".$session->referrer);
  }

}

SESSION.PHP *( editAccount()函数的来源)*

function editAccount($subcurpass, $subnewpass, $subemail, $subbio, $subavatar){
  global $database, $form;  //The database and form object


//working codes.....
//then below is the problem....


/* Change Avatar */
  if($subavatar){
    $subavatar = $_POST['avatar'];
    $folder = "../images/avatar/";

    move_uploaded_file($_FILES["avatar"]["tmp_name"], $folder . $_FILES["avatar"]["name"]);
    $database->updateUserField($this->username,"avatar",$subavatar);
  }
}

您可能想知道为什么我使用$subavatar = $_POST['avatar'];而不是$_FILES["avatar"]["name"];,这是因为,它不会将文件名保存在我需要的数据库上。但是,这只会将名称存储在数据库中,而不会将文件存储在文件夹中。

有人可以帮我解决这个问题,并告诉我我在做什么错以及如何解决。请,谢谢。

0 个答案:

没有答案
相关问题