フォームにファイルアップロード入力を追加しました。私が追加したPHPの検証では、フォームの送信が許可されていません。送信ボタンを押すたびに、ファイルが.jpeg、jpgなどである必要があるという検証エラーが表示されます。この検証が必要ですが、ファイルがアップロードされている場合のみです。PHPバリデーションが送信をブロックする
私は、このファイルをアップロードしてからフォームに提出するか、フォームが送信される前にキャッチするかどうかだけを確認するために何をすべきかはわかりません。
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
//File properties
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
//File Extension
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg', 'jpeg', 'png');
if(in_array($file_ext, $allowed)) {
if($file_error === 0) {
if($file_size <= 2097152) {
$file_name_new = uniqid('', true) . '.' . $file_ext;
} else {
echo "Sorry, your file is WAY too large";
}
}
} else {
echo "Sorry, only JPG, JPEG, PNG and TXT files are allowed.";
}
}
<form action="" autocomplete="on" method="POST" id="project-information-form" enctype="multipart/form-data">
<input type="file" name="file" id="file" class="inputfile" data-multiple-caption="{count} files selected" multiple>
<label for="file"><span id="file-upload-image"><img src="/icons/white-upload.png" height="25px" width="25px"></span>File Upload</label>
<input type="submit" id="submit-project" class="submit-project-button" value="Send Project Inquiry">
</form>
ファイルがアップロードされていない場合でも、フォームを送信するために私ができることを知っている人はいますか?
[このスレッド](http://stackoverflow.com/questions/2958167/how-to-test-if-a-user-has-selected-a-file-to-upload)を見てください。 –