首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中的文件上传和下载

PHP中的文件上传和下载
EN

Stack Overflow用户
提问于 2018-08-15 21:26:06
回答 1查看 219关注 0票数 -1

下面的代码有什么问题吗?因为我可以毫无错误地单击该按钮,但文件不会保存到"public_html/resume/"

代码语言:javascript
复制
$uploadOk = true;

if(isset($_FILES)) {

    $folder_dir = "public_html/resume/";

    $base = basename($_FILES['resume']['name']); 

    $resumeFileType = pathinfo($base, PATHINFO_EXTENSION); 

    $file = uniqid() . "." . $resumeFileType;   

    $filename = $folder_dir .$file;  

    if(file_exists($_FILES['resume']['tmp_name'])) { 

        if($resumeFileType == "pdf")  {

            if($_FILES['resume']['size'] < 500000) { // File size is less than 5MB

                move_uploaded_file($_FILES["resume"]["tmp_name"], $filename);

            } else {
                $_SESSION['uploadError'] = "Wrong Size. Max Size Allowed : 5MB";
                header("Location: edit-profile.php");
                exit();
            }
        } else {
            $_SESSION['uploadError'] = "Wrong Format. Only PDF Allowed";
            header("Location: edit-profile.php");
            exit();
EN

回答 1

Stack Overflow用户

发布于 2018-08-15 23:13:27

不幸的是,PHP代码的每一行都需要改进。

错误的原因是/public_hml/不是绝对文件路径,所以它被解释为相对路径。寻找<current directory>/public_html/resume/,这几乎肯定是无效的。

下面我已经为你解决了几乎所有的问题。

代码语言:javascript
复制
$uploadOk = false; // Always assume false until proven ok.  

if(!empty($_FILES['resume'])) {
   // Check errors    
   if($_FILES['resume']['error'] === 0){

        $folder_dir = $_SERVER['DOCUMENT_ROOT']."/resume/"; // use absolute path.

    // $base = basename($_FILES['resume']['name']); //worthless.
    // $resumeFileType = pathinfo($base, PATHINFO_EXTENSION); 

        $finfo = new finfo();
        $fileMimeType = $finfo->file($_FILES['resume']['tmp_name'], FILEINFO_MIME_TYPE);
        if(strtolower($fileMimeType) !== 'applicaton/pdf'){
               $_SESSION['uploadError'] = "Wrong Format. Only PDF Allowed";
                header("Location: edit-profile.php");
                exit();
        }
        $file = uniqid("",true) . ".PDF";    // make sure unique is unique. 

        $filename = $folder_dir .$file;  

    //if(file_exists($_FILES['resume']['tmp_name'])) {  

    //   if($resumeFileType == "pdf")  {//worthless.

       if($_FILES['resume']['size'] > 500000) { // File size is less than 5MB
            $_SESSION['uploadError'] = "Wrong Size. Max Size Allowed : 5MB";
            header("Location: edit-profile.php");
            exit();
       } 

       move_uploaded_file($_FILES["resume"]["tmp_name"], $filename);
   }
   else {
     //There were file upload errors. Handle here.
    }
}

来源

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51859622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档