我有一个input box
,在其中键入文件名。我希望input box
要求我或其他用户input
还要提供哪种文件类型。
例如,当我在this_is_name_of_file
上键入input box
并提交时。它应该返回false
。
只有当我以name_of_file.pdf
或name_of_file.docx
键入其中文件名并以其file extension
键入时,才可以接受它。
这是表单中的输入标签:
<label>File Name: </label>
<input class="input2" type="text" name="filename"
placeholder="file.pdf/xlsx/xls/docx" required autofocus><br>
这是我的php文件:
$FName = $_POST['filename'];
$pdoQuery = "INSERT INTO `report`(`filename`) VALUES (:FName)";
$pdoResult = $pdoConnect->prepare($pdoQuery);
$pdoExec = $pdoResult->execute(array(":FName"=>$FName));
答案 0 :(得分:3)
有很少的选择,但是我会去:
$path_parts = pathinfo($_POST['filename']);//spits the variable in to parts to chewck
if(empty($path_parts['extension'])){ //check for extension
echo 'filename error';
}else{
$FName = $_POST['filename'];
$pdoQuery = "INSERT INTO `report`(`filename`) VALUES (:FName)";
$pdoResult = $pdoConnect->prepare($pdoQuery);
$pdoExec = $pdoResult->execute(array(":FName"=>$FName));
}
答案 1 :(得分:3)
如果您对浏览器验证感到满意(例如required
的使用方式),则可以始终使用模式,例如
<form>
<input class="input2" type="text" name="filename"
placeholder="file.pdf/xlsx/xls/docx" required autofocus
pattern=".+\.(pdf|xlsx?|docx)">
<button>Try it</button>
</form>