Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交前检查文件详细信息_Javascript_Jquery - Fatal编程技术网

Javascript 提交前检查文件详细信息

Javascript 提交前检查文件详细信息,javascript,jquery,Javascript,Jquery,在用户实际提交表单之前,是否有任何方法/函数/脚本可用于检查文件详细信息(扩展名和大小)。我不熟悉jquery或javascript,所以如果这是解决方案,请详细帮助我 我希望当用户使用onchange命令选择文件时,该文件将被选中,并返回“勾选”图标以显示它已被接受,如果大小更大或使用其他扩展名,则返回erorr msg 这是表格 <table width="809" cellpadding="2" cellspacing="2"> <tr> <td wi

在用户实际提交表单之前,是否有任何方法/函数/脚本可用于检查文件详细信息(扩展名和大小)。我不熟悉jquery或javascript,所以如果这是解决方案,请详细帮助我

我希望当用户使用onchange命令选择文件时,该文件将被选中,并返回“勾选”图标以显示它已被接受,如果大小更大或使用其他扩展名,则返回erorr msg

这是表格

<table width="809" cellpadding="2" cellspacing="2">
  <tr>
  <td width="252"><label for="file">Acceptance Letter from Publisher:</label></td>
  <td width="541"><input type="file" name="acceptletter" id="file" onchange="checkFile(this.value)"></td>
  </tr>
  <tr>
  <td width="252"><label for="file">Turnitin Similarity Report :</label></td>
  <td width="541"><input type="file" name="turnitin" id="file" onchange="checkFile(this.value)></td>
  </tr>
  <tr>
  <td width="252"><label for="file">Paper Indexing :</label></td>
  <td width="541"><input type="file" name="paperindex" id="file onchange="checkFile(this.value)"></td>
  </tr>
  <tr>
  <td width="252"><label for="file">Publisher's Reviewers Report :</label></td>
  <td width="541"><input type="file" name="reviwerReport" id="file"onchange="checkFile(this.value)"></td>
  </tr></table>`

出版商的接受函:
Turnitin相似性报告:
出版商评论员报告:
`

好的,首先对于“扩展名”,您需要做的就是获取文件名/路径,并对“.”字符进行拆分。即

var sFileName = document.getElementById('file').value;
var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1];
alert(sFileExtension);
要查找文件大小

var iFileSize = document.getElementById('file').files[0].size;
alert(iFileSize);

最后,不能有多个具有相同“id”属性的dom元素。您需要将除其中一个之外的所有名称的id=“file”更改为与“file”不同的名称。此外,使用关键字作为唯一名称不是一种好的编码实践。将所有元素的id更改为唯一的,而不是像“file”这样的关键字。

首先为所有3个元素指定idfile。它应该是独一无二的。 您可以按如下方式获得文件大小

var filesize = $("#file1").files[0]·size; //gives Size in bytes.
var filename = $("#file1").files[0]·name;   //say file name "abcd.xls"

var lastIndex = filename.lastIndexOf(".");    //index of . that is 4
var extension1 = filename.substring(lastIndex);   //will give ".xls"
var extension2 = filename.substring(lastIndex+1);   //will give "xls"

从“文件名”中,您可以通过对的最后一个索引添加子字符串来获取扩展名。

返回“文件名”属性:

fileName = fileuploadObject.name ;
要获取路径或名称,请执行以下操作:

fileuploadObject.value; //it's read only
要获取文件名和扩展名,请执行以下操作:

var extension = fileName.split('.').pop();
var name = fileName.split('.')[0];
要获取文件大小,请执行以下操作:

var fileSize = fileuploadObject.size); // in bytes

我已经检查了你共享的链接。但它并没有提供我如何应用它的例子。请帮助我@SamuelLiewokay,我已经更改为文件、文件1等等。var文件名是为了获得扩展名?因此,我可以不使用id='file'而将其这样放置吗?name=“acceptletter”id=“acceptletter”nanie,您可以通过使用javascript作为验证器来指定接受哪个扩展。例如,'switch(sFileExtension){case'jpg':case'png':返回true;默认值:返回false;};没关系。问题解决了。非常感谢。