PHP文件上载错误tmp_name为空

Jay*_*uan 16 html php

我的文件上传时出现此问题.我尝试上传我的PDF文件,同时检查验证是否TMP_NAME为空,当我检查$_FILES['document_attach']['error']值为1时,这意味着有一个错误.

但是当我尝试上传其他PDF文件时,它已成功上传.为什么其他PDF文件没有?

HTML

<form action="actions/upload_internal_audit.php" method="post" enctype="multipart/form-data">
   <label>Title</label>
   <span><input type="text" name="title" class="form-control" placeholder="Document Title"></span>  
   <label>File</label>  
   <span><input type="file" name="document_attach"></span><br>
   <span><input type="submit" name="submit" value="Upload" class="btn btn-primary"></span>
</form>
Run Code Online (Sandbox Code Playgroud)

PHP

if(isset($_POST['submit'])){

$title = $_POST['title'];
$filename = $_FILES['document_attach']['name'];
$target_dir = "../eqms_files/";
$maxSize = 5000000;

if(!empty($title)){

    if(is_uploaded_file($_FILES['document_attach']['tmp_name'])){
        if ($_FILES['document_attach']['size'] > $maxSize) {
                echo "File must be: ' . $maxSize . '";
        } else {

                $result = move_uploaded_file($_FILES['document_attach']['tmp_name'], $target_dir . $filename);
                mysqli_query($con, "INSERT into internal_audit (id, title, file) VALUES ('', '".$title."', '".$filename."')");
                echo "Successfully Uploaded";
        }   
    }else
        echo "Error Uploading try again later";

}else
    echo "Document Title is empty";

}
Run Code Online (Sandbox Code Playgroud)

Jay*_*uan 51

我只是检查phpinfo()中的最大大小;

然后检查是否加载了php.ini

$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
   echo 'A php.ini file is not loaded';
}
Run Code Online (Sandbox Code Playgroud)

然后改变 upload_max_filesize=2M to 8M

; Maximum allowed size for uploaded files.
upload_max_filesize = 8M 

; Must be greater than or equal to upload_max_filesize
post_max_size = 8M 
Run Code Online (Sandbox Code Playgroud)


Raj*_*dav 7

var_dump($_FILES['file_flag']['tmp_name']); // file_flag file key 
will return empty string 
array (size=1)
  'course_video' => 
    array (size=5)
      'name' => string 'fasdfasdfasdfsd.mp4' (length=19)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0) <===== *** this point 
      'error' => int 1
      'size' => int 0
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为WAMP服务器不接受这么多大小上传到服务器上.

为了避免这种情况,我们需要更改php.ini文件.

upload_max_filesize=100M (as per your need)
post_max_size = 100M (as per your need)
Run Code Online (Sandbox Code Playgroud)

在Wamp服务器中

更改发布最大尺寸

更改最大上传大小

最后重启服务器

重启WAMP服务器

  • 是的,我知道,谢谢.我只是在问,因为你正在为WAMP提供非常具体的指示,当OP没有谈论使用WAMP时. (3认同)
  • 你好 OMA,你只需要找到 php.ini 文件,无论它是 LAMP、XAMP、WAMP,并且你必须根据你的要求对 max_upload 和 post_max 标志进行更改 (2认同)