我在上传时使用jQuery Validate插件来验证CSV文件。我的js文件中有以下代码。
$("#selector").validate({
rules: { file_csv: { accept: true, accept: "csv" }},
messages: {
file_csv: {accept: 'Please upload a csv file!'}
}
});
在ubuntu(firefox和chrome)上,它对CSV文件进行验证,并转发到下一阶段的代码。但对于windows,它会抛出"请上传csv文件!"的错误。
您的代码格式化为可读性故障排除:
$("#selector").validate({
rules: {
file_csv: {
required: true,
extension: "csv"
}
},
messages: {
file_csv: {
accept: 'Please upload a csv file!' // <-- 'accept' rule not used
}
}
});
您的代码包含一个明显的错误。。。
您正在为未使用的规则指定错误消息。您的错误消息是为accept
方法指定的,但您仅使用required
和extension
方法。我不确定这怎么能在任何浏览器中工作。
这个代码应该可以完美地工作:
$("#selector").validate({
rules: {
file_csv: {
required: true,
extension: "csv"
}
},
messages: {
file_csv: {
extension: 'Please upload a csv file!'
}
}
});
编辑:
如果按文件扩展名验证不够强,可以使用accept
方法按mime-type
验证。但是,您需要为CSV文件指定一个有效的mime-type
,即text/csv
。请参阅:http://www.ietf.org/rfc/rfc4180.txt和http://en.wikipedia.org/wiki/Comma-separated_values#Toward_standardization
$("#selector").validate({
rules: {
file_csv: {
required: true,
accept: "text/csv"
}
},
messages: {
file_csv: {
accept: 'Please upload a csv file!'
}
}
});