输入type =“ file”在移动设备上不起作用

时间:2019-12-30 17:29:38

标签: javascript php html

我正在在线开发此Web应用程序,并且正在使用输入type =“ file”允许用户提交图像和文件。 我现在遇到的一个问题是,当我单击拍照选项并拍照并无法提交时。但是,如果我打开相机拍摄图像,则转到Web应用程序并选择该图像,它将起作用并提交。平板电脑的IO和Android(最新版本)都会发生这种情况。但是,在手机上,我不能提交任何非屏幕截图的内容。我尝试做与我在平板电脑上做的相同的事情,在该平板电脑上我首先拍摄图像,然后打开浏览器并选择最近拍摄的图像(或任何拍摄的图像),然后将其提交将不起作用。 下面是我所拥有的

HTML
    <input type="file" name="F_Files[]" id="F_Files" accept="image/*" multiple />

JAVASCRIPT
const mrFiles = document.querySelector('#F_Files').files;
            var formData = new FormData();
            if (F_Files.length > 0){
                for (var i = 0; i < F_Files.length; i++) {
                    var file = F_Files[i];
                    formData.append('F_Files[]', file);
                }
            }
var postrequest = new XMLHttpRequest();
        postrequest.open('post', 'include/infoProcessing.php', true);
        postrequest.send(formData);
             postrequest.onload = function(){
alert("Form has been submitted!");
}
PHP

$date = date('YmdHis');
if (isset($_FILES['F_Files'])) {
        $errors = [];
        $path = '/uploads/';
        $extensions = ['jpg', 'jpeg', 'png', 'gif', 'doc', 'docx', 'pdf'];

        $all_files = count($_FILES['F_Files']['tmp_name']);

        for ($i = 0; $i < $all_files; $i++) {
            $file_name = $date .'_'.$_FILES['F_Files']['name'][$i];
            $file_tmp = $_FILES['F_Files']['tmp_name'][$i];
            $file_type = $_FILES['F_Files']['type'][$i];
            $file_size = $_FILES['F_Files']['size'][$i];
            $file_ext = strtolower(end(explode('.', $_FILES['F_Files']['name'][$i])));

            $file = $path . $file_name;


            if (!in_array($file_ext, $extensions)) {
                $errors[] = 'Extension not allowed: ' . $file_name . ' ' . $file_type;
            }

            if ($file_size > 2097152) {
                $errors[] = 'File size exceeds limit: ' . $file_name . ' ' . $file_type;
            }

            if (empty($errors)) {
                move_uploaded_file($file_tmp, $file);
            }
        }
        if ($errors) print_r($errors);
    }

任何帮助。谢谢。

0 个答案:

没有答案