通过php更新文件

时间:2017-01-05 22:58:00

标签: php

带有input元素的表单如下:

<?php
$post_new_file=$_FILES['post_new_file'];
if(isset($_POST['update'])){
if (!empty($post_new_file)) {                

  $post_file=$_FILES['post_new_file']['name'];
  $post_file_temp=$_FILES['post_new_file']['tmp_name'];
  move_uploaded_file($post_file_temp,"../pdf/$post_file");                     
                     }
$query="UPDATE posts SET post_file='{$post_file}' WHERE post_id='{$the_post_id}' ";
$create_post_query=  mysqli_query($connect, $query);
 confirmQuery($create_post_query);

?>
<form action="edit.php?source=<?php echo $the_post_id ?>"  method="post" enctype="multipart/form-data">
  <div class="form-group" style="border: solid #000 3px;">
   <label for="post_file">Select New File</label>
    <input type="file" name="post_new_file" >
    </div>
  </form>

$ post_new_file存在时出现问题。在这种情况下,更新时我丢失了数据库中的数据,并且帖子无法访问该文件。简而言之,当我还没有插入新文件时,我不想更改文件的访问权限。 感谢

1 个答案:

答案 0 :(得分:0)

你应该检查$_FILES['post_new_file']['tmp_name']是否为空,即使文件上传出错,_FILES [&#39; post_new_file&#39;]也会存在。你甚至可能想检查移动上传工作,以确保你真的有文件,因为文件可以上传,但如果移动失败,你将丢失文件,因为它只是临时存储