我正在在线开发此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);
}
任何帮助。谢谢。