获取 javascript 中 zip 文件的文件名
get name of files of zip file in javascript
在我的应用程序中,我有一个包含一些字段和一个 input file
字段的表单,一旦用户上传 zip file
我想获取此 [=] 中包含的文件的名称13=]。
这是表格:
<input type="text" name="code" value="CodeValue">
<input type="text" name="Comment" value="commentValue">
<input type="file" name="zipFile" value="zipValue" accept="application/zip"
onchange="getzipFilesNames();" id="file-input">
<script>
function getzipFilesNames() {
}
</script>
我不需要提取文件,我只需要它们的名称。我如何使用 javascript 来做到这一点?
要在客户端执行此操作,您需要使用 File API (see this answer for examples), and then interpret the zip data to extract the filenames. There are libraries that can help with that second part, such as jszip.
读取文件
我找到了一种使用 JSUnzip library and the JSInflate 库的简单方法:这是示例代码:
var filesInput = document.getElementById("file-input").files[0];
var res;
var reader = new FileReader();
reader.readAsBinaryString(filesInput);
reader.onloadend = function(e){
var myZip = e.target.result;
var unzipper = new JSUnzip(myZip);
unzipper.readEntries();
var myFiles = unzipper.entries;
for(var i=0; i<myFiles.length; i++) {
var name = myFiles[i].fileName; // This is the file name
var content = JSInflate.inflate(myFiles[i].data); // this is the content of the files within the zip file.
}
}
函数读取文件(){
var 文件 = document.getElementById('files').files[0];
var reader = new FileReader()
reader.readAsBinaryString(files)
reader.onload = (e) => {
var myZip = e.target.result
var unzipper = new JSUnzip(myZip);
var readEntries = unzipper.readEntries();
var myFiles = unzipper.entries;
for(var i = 0; i < myFiles.length; i++) {
var name = myFiles[i].fileName;
console.log('filename = ', name)
}
}
}
在我的应用程序中,我有一个包含一些字段和一个 input file
字段的表单,一旦用户上传 zip file
我想获取此 [=] 中包含的文件的名称13=]。
这是表格:
<input type="text" name="code" value="CodeValue">
<input type="text" name="Comment" value="commentValue">
<input type="file" name="zipFile" value="zipValue" accept="application/zip"
onchange="getzipFilesNames();" id="file-input">
<script>
function getzipFilesNames() {
}
</script>
我不需要提取文件,我只需要它们的名称。我如何使用 javascript 来做到这一点?
要在客户端执行此操作,您需要使用 File API (see this answer for examples), and then interpret the zip data to extract the filenames. There are libraries that can help with that second part, such as jszip.
读取文件我找到了一种使用 JSUnzip library and the JSInflate 库的简单方法:这是示例代码:
var filesInput = document.getElementById("file-input").files[0];
var res;
var reader = new FileReader();
reader.readAsBinaryString(filesInput);
reader.onloadend = function(e){
var myZip = e.target.result;
var unzipper = new JSUnzip(myZip);
unzipper.readEntries();
var myFiles = unzipper.entries;
for(var i=0; i<myFiles.length; i++) {
var name = myFiles[i].fileName; // This is the file name
var content = JSInflate.inflate(myFiles[i].data); // this is the content of the files within the zip file.
}
}
函数读取文件(){ var 文件 = document.getElementById('files').files[0];
var reader = new FileReader()
reader.readAsBinaryString(files)
reader.onload = (e) => {
var myZip = e.target.result
var unzipper = new JSUnzip(myZip);
var readEntries = unzipper.readEntries();
var myFiles = unzipper.entries;
for(var i = 0; i < myFiles.length; i++) {
var name = myFiles[i].fileName;
console.log('filename = ', name)
}
}
}