我一直在看到PHP中的一些失败,以查找正在提交的表单中附加的文件。它大约80%的时间都有效,然后在没有附加文件或只有一两个文件之间分开。
用例是用于车辆结账,车辆拍摄照片然后提交归档。代码的示例(需要6张照片,1张是额外的)是:
<form name="fForm" action="fleet-check-out-update.php" onsubmit="return validateForm();" method="post" id="fleet" enctype="multipart/form-data">
.....
<tr>
<th>Driver Side - Bumper to Bumper:</th>
<td><input type="hidden" name="MAX_FILE_SIZE" value="16000000">
<input type="file" name="attachment5" id ="attachment5" class="file_1" style="width:375px;"/></td>
</tr>
<tr>
<th>Interior/Cab - Clean interior:</th>
<td><input type="hidden" name="MAX_FILE_SIZE" value="16000000">
<input type="file" name="attachment6" id ="attachment6" class="file_1" style="width:375px;"/></td>
</tr>
在后端,此行在发生故障时启动故障:
$name = $_FILES["attachment5"]['name'];
使用PHP注意:未定义的索引:attachment5通知。
然后,文件将通过以下方式上传到S3:
if ($s3->putObjectFile($tmp, $bucket . "/fleet/$nowstamp2/$number", $name, S3::ACL_PUBLIC_READ))
但是由于$ name上没有文件数据,因此会失败。
如果失败,所有非文件发布数据(文本)仍然会出现。
最初,PHP中的文件大小限制导致失败,但增加数据允许修复。设备是Android或iOS手机 - 意味着每张照片直接来自手机4MB +。我不认为有任何方法可以轻易地从网页上强制缩小尺寸图片而不妨碍可用性 - 但如果有的话我会对它感兴趣。
我想消除此错误,但我不确定是否由于服务器上的HTML / PHP,或者最终用户的手机由于某些原因因内存/连接质量而超时/失败/其他一些原因。
我缺少什么?