我正在使用asp.net进行简单的项目,我创建了一个表单,用户可以在其中上传文件。在将数据存储到客户端之前,我采取了变通办法来检查文件扩展名,如果文件不是图像,则停止回发
function checkFileExtention() {
var file = document.getElementById('FileUpload1').value;
var lastIndex = file.lastIndexOf(".");
var fileExt = file.substr(lastIndex + 1).toLowerCase();
var isValidExtention=0;
var i;
var extArray = ["jpg", "png", "gif", "jpeg"];
for (i = 0; i < extArray.Length; i++) {
if (fileExt == extArray[i]) {
isValidExtention = 1;
return true;
break;
}
else {
document.getElementById("demo").innerText = "invalid";
return false;
isValidExtention = 0;
}
}
}
<asp:LinkButton ID="addButton" runat="server" type="submit" CausesValidation="true"
OnClick="addButton_Click" OnClientClick="if (!checkFileExtention()) {return false;}">Add</asp:LinkButton>
但是我遇到了一些问题,我无法显示警报或无法在for循环内设置文本 变量isValidExtention的偶数在循环外始终为0
任何帮助将不胜感激
答案 0 :(得分:2)
您可以尝试一下,
function checkFileExtention() {
var file = document.getElementById('FileUpload1').value;
if (file != "") {
var fileExt = file.match(/\.([^\.]+)$/)[1];
var isValidExtention=0;
var i;
var extArray = ["jpg", "png", "gif", "jpeg"];
for (i = 0; i < extArray.Length; i++) {
if (fileExt.toLowerCase() == extArray[i]) {
isValidExtention = 1;
document.getElementById("demo").innerText = "";
break;
}
else {
document.getElementById("demo").innerText = "invalid";
isValidExtention = 0;
}
}
});
第二种检查文件扩展名的方法,
function checkFileExtention() {
var file = document.getElementById('FileUpload1').value;
if (file != "") {
var ext = file.match(/\.([^\.]+)$/)[1];
var isValidExtention=0;
ext.toLowerCase();
if (ext == "png" || ext == "jpg" || ext == "jpeg" || ext=="gif") {
isValidExtention = 1;
return true;
}
else {
document.getElementById("demo").innerText = "invalid";
isValidExtention = 0;
return false;
}
}
});
答案 1 :(得分:1)
代码中的唯一问题是小错误,就像您使用“长度”而不是长度一样。我修改了您的代码,请看一看。
function checkFileExtention() {
var file = document.getElementById('FileUpload1').value;
var lastIndex = file.lastIndexOf(".");
var fileExt = file.substr(lastIndex + 1).toLowerCase();
var isValidExtention = false;
var i;
var extArray = ["jpg", "png", "gif", "jpeg"];
for (i = 0; i < extArray.length; i++) {
if (fileExt == extArray[i]) {
isValidExtention = true;
document.getElementById("demo").innerText = "";
break;
}
else {
document.getElementById("demo").innerText = "invalid";
}
}
return isValidExtention;
}
答案 2 :(得分:0)
请检查以下代码。我们限制上传文件文件是否为图片之前。
var oFileIn = document.getElementById('fileupload');
if (oFileIn.addEventListener) {
oFileIn.addEventListener('change', filePicked, false);
}
function filePicked(event) {
var files = event.target.files;
var regex = new RegExp("(.*?)\.(png|gif|jpg|jpeg)$");
if (!(regex.test(files[0].name)))
{
alert('Please select image files');
var oFileIn = document.getElementById('fileupload');
oFileIn.value='';
return;
}
}
希望对您有帮助。
感谢和问候 Angappan.S
答案 3 :(得分:0)
尝试一下:
const regex = /.+\.(jpg|jpeg|gif|png)\s*$/mig;
const str = `image.jpg
image.notmatching
capitalLetterFormat.PNG
.jpg
`;
它检查以下内容: