Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查用户是否已选择要上载的文件_Php - Fatal编程技术网

Php 检查用户是否已选择要上载的文件

Php 检查用户是否已选择要上载的文件,php,Php,我正在尝试编写一个脚本,系统会在上载任何内容之前检查用户是否选择了要上载的文件。我遇到的问题是,即使我没有选择一个文件,系统也会回显文件已成功上载。见下面的代码: <?php include("dbconfig.php"); if(isset($_POST['btn-upload'])) { $loggedinuser = $_GET['bid']; $file = $_FILES['file']['name']; $file_size = $_FILES

我正在尝试编写一个脚本,系统会在上载任何内容之前检查用户是否选择了要上载的文件。我遇到的问题是,即使我没有选择一个文件,系统也会回显文件已成功上载。见下面的代码:

<?php
include("dbconfig.php");

if(isset($_POST['btn-upload'])) {

    $loggedinuser = $_GET['bid'];   
    $file = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];

    $sql = mysqli_query($conn, "INSERT INTO upload (personalid, file, type, size) values ((select personalid from person where username='$loggedinuser'), '$file', '$file_type', '$file_size')") or die (mysqli_error($conn));

    if($sql){
        header("location:upload.php?msg0=Document upload successful.");     
    } elseif( !file_exists($_FILES['file']['name']) || !is_uploaded_file($_FILES['file']['name']) ) {
        header("location:upload.php?msg1=Document upload failed.");
    }
}
?>
<!-- need to comment -->

目前,只有当按钮作为POST请求按下时,您的语句才是基于该按钮的,并且始终是这样

我不是百分之百的相信这一点,但我准备尝试回答这个问题

$loggedinuser = $_GET['bid'];
if (isset($_FILES['file']['name']) && !empty($_FILES['file']['name'])) {
    $file = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
}

if (isset($file) && isset($file_size) && isset(file_type)) {    
  SQL stuff;
}

if(isset($sql) && $sql){
    header("location:upload.php?msg0=Document upload successful.");     
} else {
    header("location:upload.php?msg1=Document upload failed.");
}

另一方面,你能不能不确保该字段在HTML中是必需的?

只检查
$\u FILES['file']['name']
是否为空。在这方面,你能做的唯一检查是使用javascript,因为
文件存在
并且
是上传的文件
等只有在提交后才会被调用。
如果(isset($\u FILES['file']['name'])
是检查正在上载的文件的方式。您可能需要检查语法。您似乎也有语法错误。
错误报告(E\u ALL)
谢谢你的努力,但我已经纠正了这个问题。@MuhammadSohailArif:问题出在哪里?过去我通常只在输入的html部分输入required,我想知道结果是什么,我没有亲自测试上面的代码——这是我的想法。
$loggedinuser = $_GET['bid'];
if (isset($_FILES['file']['name']) && !empty($_FILES['file']['name'])) {
    $file = $_FILES['file']['name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
}

if (isset($file) && isset($file_size) && isset(file_type)) {    
  SQL stuff;
}

if(isset($sql) && $sql){
    header("location:upload.php?msg0=Document upload successful.");     
} else {
    header("location:upload.php?msg1=Document upload failed.");
}