【问题标题】:in PWA, can file from share_target in manifest.json be fetched using PHP $_FILES using POST method?在 PWA 中,可以使用 PHP $_FILES 使用 POST 方法从 manifest.json 中的 share_target 获取文件吗?
【发布时间】:2021-06-06 11:00:42
【问题描述】:

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

这里有一些sn-p:

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。决定.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 的共享功能上传文件时,我总是收到“请选择您的文件”警报,这意味着它得到了 $uploaded == NULL 条件。 我已经尝试通过在php中使用$_POST获取一些使用“text”属性的测试文本以及使用share_target中的“url”属性的一些url并且它有效,只有对我不起作用的“文件” .

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

【问题讨论】:

    标签: php progressive-web-apps manifest manifest.json


    【解决方案1】:

    我已经找到了我不太清楚为什么会发生这种情况的解决方案,所以我使用一些 3rd 方文件管理器上传了文件,它显示文件没有上传,但是当我尝试使用文件管理器时是手机上的本机应用程序,它已成功上传,我认为它是一种许可吗?我什至不知道为什么我试图从那个 3rd 方文件管理器共享,而已经有一个本机文件管理器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 2015-10-02
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2012-01-18
      相关资源
      最近更新 更多