文件名已插入数据库,但文件未到达目标文件夹

时间:2018-07-24 07:01:16

标签: php

这是我的文件上传代码,此代码文件名已到达数据库,但文件未到达目标文件夹。

if(isset($_FILES['imageFile']['name'])){
         $imageFile=$_FILES['imageFile']['name'];
       }else{
        $imageFile='';  
       }
        $allowedExts = array("gif", "jpeg", "jpg", "png");
       if($imageFile!=''){
           $fileArray =explode(".",$imageFile);
           $extension = end($fileArray);
           if(in_array($extension,$allowedExts)){
               $newFileName=round(microtime(true)).'.'.$extension;
               $uploadPath = "assets/images/".$newFileName;
               $uploadDone = move_uploaded_file($_FILES['imageFile']['tmp_name'],$uploadPath);
           }
           else{
               $message='This type file is not allowed';
           }

       }

这是我试图获取文件的html代码。

<p>Upload Your Profile Picture: <input type="file" size=65 name="imageFile" id="imageFile"></p><br>

3 个答案:

答案 0 :(得分:0)

dirname(__FILE__)添加绝对路径$uploadPath

$folder = dirname(__FILE__);
$uploadPath = $folder."/assets/images/".$newFileName;

dirname(__FILE__);将为您提供当前文件夹名称,将其设置在您想要的位置

使用DIRECTORY_SEPARATOR获取格式不正确的分隔符

DEFINE('DS', DIRECTORY_SEPARATOR); 

并像这样使用

$uploadPath = $folder.DS.'assets'.DS.'images'.DS.$newFileName;

答案 1 :(得分:0)

  

使用完整的目标文件夹路径(即绝对路径)放置上载的文件。使用“ ROOT URL”变量。

     

如果您使用的是Windows系统,则路径应如下所示   C:/wamp or xamp/www/projectName/folderName/

     

对于linux系统,路径应类似于/ var / www / html / projectName

     

示例   $uploadPath = WWW_ROOT."/assets/images/".$newFileName;

答案 2 :(得分:0)

我的代码运行正常,问题实际上是我试图上传大小为3 MB的图像,但是在目录中,该大小定义为2 MB,因此当我尝试上传小于2 MB的图像时,它已成功上传。因此,只要发生这种类型的错误,就尝试上传小于定义的大小或从目录中增加大小。