为了账号安全,请及时绑定邮箱和手机立即绑定

只能将“”作为值分配给输入类型文件

只能将“”作为值分配给输入类型文件

千万里不及你 2023-09-11 15:04:17
我有以下代码来检查我的文件是否为 .jpg、.jpeg 或 .png:<!DOCTYPE html><html><body><input type="file" align="center" accept=".jpg,.jpeg,.png" onchange="this.size = Math.max(this.value.length, 7)+15;read(this)" id="myinput" style="min-width: 50px;"       /></body></html><script>var myfile=""async function read(input) {  var file = input.files[0];  var idxDot = file.name.lastIndexOf(".") + 1;  var extFile = file.name.substr(idxDot, file.name.length).toLowerCase();  if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){      //fileContent = await readFile(file);      myfile=file      alert("Valid file selected!");  }else{      alert("Only jpg, jpeg or png allowed");      input.value = myfile;  }}</script>我正在尝试,如果选择了与该文件不同的文件,则显示所采用的有效文件的最后一个值。但这只会在开始时、在获取有效文件之后发生。如果我选择另一个文件,输入中显示的路径将更改为所选文件的路径,即使它不是有效的路径。有没有办法解决这个问题,使显示的路径始终是最后一个有效文件的路径?
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

有点破解,但可能会给你你需要的东西


var myfile={name:"none"};

 function read(input) {

  var file = input.files[0];

  var idxDot = file.name.lastIndexOf(".") + 1;

  var extFile = file.name.substr(idxDot, file.name.length).toLowerCase();

  var span =document.getElementById('last');

  if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){

      //fileContent = await readFile(file);

      myfile=file      

      alert("Valid file selected!");

       span.style.display='none';

  }else{

      alert("Only jpg, jpeg or png allowed");

      input.value = '';     

      span.style.display='inline';

      span.innerHTML = "Last valid File was: " + myfile.name

  }

}

span{

display:none;

}

<!DOCTYPE html>

<html>

<body>

<input type="file" align="center" accept=".jpg,.jpeg,.png" onchange="this.size = Math.max(this.value.length, 7)+15;read(this)" id="myinput" style="min-width: 50px;" 

      />

      <span id='last'></span>


</body>

</html>


查看完整回答
反对 回复 2023-09-11
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信