在 PWA 中,可以使用 POST 方法使用 PHP $_FILES 获取来自 share_target in manifest.json 的文件吗?

in PWA, can file from share_target in manifest.json be fetched using PHP $_FILES using POST method?

我上次尝试 (2020) 我能够获取使用 share_target 方法上传的文件(是的,网络已经使用 A2HS 横幅安装到主屏幕),我不知道是什么我做错了,现在当我尝试使用 $_FILES['upload']['tmp_name'] 获取文件并使用 isset() 检查它时,如果 == NULL,它表明 $_FILES是空的,但是当我尝试使用我创建的表单手动上传文件时,程序运行正常

这是一些片段:

1. manifest.json

    {
    "name": "SchedUIe",
    "short_name": "SchedUIe",
    "start_url": "home.php",
    "display": "standalone",
    "background_color": "#454545",
    "theme_color": "#454545",
    "orientation": "portrait-primary",
    "icons": [
        {
            "src": "images/logo144.png",
            "type": "image/png",
            "sizes": "144x144"
        },
        {
            "src": "images/logo192.png",
            "type": "image/png",
            "sizes": "192x192"
        },
        {
            "src": "images/logo512.png",
            "type": "image/png",
            "sizes": "512x512"
        }
    ],

    "share_target":
    {
        "action": "decision.php",
        "method": "POST",
        "enctype": "multipart/form-data",
        "params": 
        {
          "title": "name",
          "text": "description",
          "url": "link",
          "files": 
          [
            {
              "name": "upload",
              "accept": [".html", ".mhtml" ,".htm"]
            }
          ]
        }
    }
}

2。 decision.php

<?php   
    $role = '';
    include_once('config_database.php');
    $uploaded = $_FILES['upload']['tmp_name'];
    $content = file_get_contents($uploaded);
    if($uploaded == NULL)
    {
        echo '<script language="javascript">';
        echo 'alert("Please select your file");';
        echo 'window.location="home.php";';
        echo '</script>';
        echo "<script>window.location.href='home.php';</script>";
    }
    elseif(strpos($content, 'title="Ganti Role">Mahasiswa') !== false) //some string checking logic
    {
        $role = 'mahasiswa';  
    }
    elseif(strpos($content, 'title="Ganti Role">Dosen') !== false) //some string checking logic
    {
        $role = 'dosen';
    }

    //Get the user name
    if ($role == 'mahasiswa')
    {
        include_once('output_mahasiswa.php');
        include_once('download_page.php');
    }
    elseif ($role == 'dosen')
    {
        include_once('output_dosen.php');
        include_once('download_page.php');
    }
    else
    {
        echo '<script language="javascript">';
        echo 'alert("Invalid File");';
        echo 'window.location="home.php";';
        echo '</script>';
        exit();
    }
?>

<html>
<head>
</head>
<body>

</body>
</html>

当我使用 android 的共享功能上传文件时,我总是收到“请 select 你的文件”警告,这意味着它得到了 $uploaded == NULL 条件。 我已经尝试通过在 php 中使用 $_POST 获取回显,一些测试文本使用“文本”属性,还有一些 url 使用“url”属性 来自 share_target 并且它有效,只有对我不起作用的“文件”。

所以是我的程序有什么错误还是只是 share_target 不再支持 $_FILES 方法?

我已经找到了解决方案,但我真的不知道为什么会发生这种情况,所以我使用一些第 3 方文件管理器上传了文件,它显示文件没有上传,但是当我尝试上传文件时来自 phone 的本机应用程序管理器已成功上传,我认为这是一个权限问题?我什至不知道为什么我试图从那个第 3 方文件管理器共享,而本机文件管理器已经存在