php - 在核心 php 中上传 pdf 文件

//=============== PDF File Upload=====================
if (isset($_FILES["pdfile"])) {
        $filename = $_FILES['pdfile']['name'];
        $dir = "../pdfs/students/".$filename;
        $tmp_name = $_FILES['pdfile']['tmp_name'];
        $file1 = explode('.',$filename);
        $ext = $file1[1];
        $allow = array('pdf');
        if(in_array($ext, $allow))
            move_uploaded_file($filename, $dir);
    }
    else
        die("There is no file to upload.");

//=============== End Pdf File Upload=====================

//=============== Image File Upload=====================
if(isset($_FILES['profile']['tmp_name'])){
        $dir = "../images/students/".$id.".jpg";
        $file = $_FILES['profile']['tmp_name'];
        if(move_uploaded_file($file, $dir)){
            echo "Image Uploaded Successfully";
            $pic = mysqli_query($con, "update students set profile ='$id.jpg' where id = $id ")or die(mysqli_error($con));
        }
        else{
            echo "Error Occured";
        }
    }
//=============== End Image File Upload=====================

PDF 文件没有上传到目录中。我不知道为什么上传个人资料图片的相同代码可以正常工作。帮我解决这个问题。

回答1

抱歉,我第一次没有看到我的代码。错误是 move_upload_file($filename, $dir) 处的 $tmp_name。将 $filename 替换为 $tmp_name ,它工作正常。

//=============== PDF File Upload=====================
if (isset($_FILES["pdfile"])) {
        $filename = $_FILES['pdfile']['name'];
        $dir = "../pdfs/students/".$filename;
        $tmp_name = $_FILES['pdfile']['tmp_name'];
        $file1 = explode('.',$filename);
        $ext = $file1[1];
        $allow = array('pdf');
        if(in_array($ext, $allow))
            move_uploaded_file($filename, $dir);
    }
    else
        die("There is no file to upload.");

//=============== End Pdf File Upload=====================

回答2

更改此行

move_uploaded_file($filename, $dir);

对此

move_uploaded_file($tmp_name, $dir);

回答3

if (isset($_FILES["pdfile"])) {
    $filename = $_FILES['pdfile']['name'];
    $dir = "../pdfs/students/".$filename;
    $tmp_name = $_FILES['pdfile']['tmp_name'];
    $file1 = explode('.',$filename);
    $ext = $file1[1];
    $allow = array('pdf');
    if(in_array($ext, $allow))
        move_uploaded_file($filename, $dir);
}

move_uploaded_file 应该是:

move_uploaded_file($tmp_name, $dir);

更多提示:

<?php
if (isset($_FILES["pdfile"])) {
  $filename = $_FILES['pdfile']['name'];
  $tmp_name = $_FILES['pdfile']['tmp_name'];
  $dir      = "../pdfs/students/" . $filename;
  $file1    = explode('.',$filename);
  // use end() to get last
  // for example: filename.jpg.pdf
  $ext = end($file1);
  $allow = array('pdf');
  if(in_array($ext, $allow))
      move_uploaded_file($tmp_name, $dir);
}

相似文章

随机推荐

最新文章