[英]Validate uploaded file type using Java script
我通过表格获取文件,并要求验证其类型。 但是听起来Java脚本不起作用或看不到调用?
<form enctype="multipart/form-data" action="Upload2.jsp"
method="post" onsubmit="javascript:return validate();">
<td><b>Choose txt file To Upload:</b></td>
<td><input name="file" type="file"></td>
<td><input type="submit" value="Upload File" ></td>
</form>
这是脚本:
<script language="JavaScript">
function validate(){
if(document.form.file.value == "" ) {
alert("Enter course code !");
return false;}
else {
var value = document.form.file.value;
var ext = value.substr(dot, value.length);
//ext = value.slice(file.indexOf(".")).toLowerCase();
if ( ext=="txt" ) {
return true; }
else{
alert("choose a .txt file");
return false;}
}
}
</script>
这是表格。.我不确定我的脚本是否正确?
您可以使用以下命令捕获字符串中最后一个周期之后的内容:
ext = value.split(".").pop();
您将String value
分割成一个数组:
var myValue = "some.thing.ext";
var myArray = myValue.split(".");
现在myArray是:
["some", "thing", "ext"];
现在,您可以使用.pop()
从数组中弹出最后一个值。
var ext = myArray.pop();
现在
ext === "ext";
myArray === ["some", "thing"]
在上下文中:
function validate(){
if(document.form.file.value == "" ) {
alert("Enter course code !");
return false;}
else {
var value = document.form.file.value,
ext = value.split(".").pop();
if ( ext == "txt" ) {
return true; }
else{
alert("choose a .txt file");
return false;}
}
}
如果将onsubmit更改为:
onsubmit="javascript:return validate(this);"
然后,您将获得form元素作为value中的第一个参数:
function validate(form){
var value = form.file.value,
ext = value.split(".").pop();
if( !value ) {
alert("Enter course code !");
}
else if ( ext !== "txt" ) {
alert("choose a .txt file");
}
return ( ext === "txt" );
}
注意:
切勿将javaScript用作唯一的验证。 使用某种服务器站点语言来确定是否通过验证。
使用JS使用户在您的网站上运行时更加流畅。
验证上传的文件类型并限制其大小的最佳方法是
var ext = $('#uploadFeedback').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert('invalid extension!');
}
以上用于文件类型验证。
var uploadedFile = document.getElementById('uploadFeedback');
var fileSize = uploadedFile.files[0].size;
以上用于文件大小验证
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.