在javascript中选择文件而不指定扩展名

在javascript中选择文件而不指定扩展名,javascript,html,Javascript,Html,我有一个带缩略图的文件夹。这些可以是.jpg或.gif或.png等。 如何使用javascript选择只有名称的文件 例如,如果有一个名为tree.jpg的文件,我只想使用tree查找它。这些缩略图所在的文件夹始终相同。下面是我正在使用的代码片段。我的问题是关于var src的行。在那一行中,我想在文件夹缩略图中找到仅使用名称的文件 (projects is a json file) function buildWork(projects) { var container = document

我有一个带缩略图的文件夹。这些可以是.jpg或.gif或.png等。 如何使用javascript选择只有名称的文件

例如,如果有一个名为tree.jpg的文件,我只想使用tree查找它。这些缩略图所在的文件夹始终相同。下面是我正在使用的代码片段。我的问题是关于var src的行。在那一行中,我想在文件夹缩略图中找到仅使用名称的文件

(projects is a json file)
function buildWork(projects) {
 var container = document.getElementById('projects');
 var row = document.createElement('div');
 row.className = 'row no-gutters';
 container.appendChild(row);

for(var i in projects) {
  col = document.createElement('div');
  col.className = 'col-6 col-md-4 item thumbnail';

  var src = "thumbnails/" + project.name;

  col.innerHTML = '<img src='+ src +'></img>';
  row.appendChild(col);
}
(项目是一个json文件)
功能构建工作(项目){
var container=document.getElementById('projects');
var行=document.createElement('div');
row.className='行无排水沟';
container.appendChild(行);
对于(项目中的var i){
col=document.createElement('div');
col.className='col-6 col-md-4项目缩略图';
var src=“thumbnails/”+project.name;
col.innerHTML='';
行。追加子行(列);
}

}浏览器中的JavaScript不允许列出硬盘上的文件。如果要针对服务器的文件系统尝试几种已知的文件扩展名,可以使用以下方法:

const fname = "tree";
const exts = ['.png', '.jpg', ... ];

let queries = exts.map(ext => fetch(`${fname}${ext}`).then(response));

Promise.all(queries).then(responses => {
    // Only one response will return "ok":
    // It will be at the same index as the correct extension
    // in the `exts` array.

    // This will hold the extension of the FIRST extension that returns
    // from the server successfully:
    let correctExtension = exts[responses.map(r => r.ok).indexOf(true)];

    let trueFileName = fname + correctExtension;
});
[编辑]此方法仍适用于更新的问题;但是,您仍然从服务器请求每个文件,并希望其中一个存在。(如果服务器上存在此文件,
trueFileName
var将在末尾保留
tree.jpg


另一个选择是在HTTP服务器上使用API样式的重定向;但这是一个完全不同的故事,对JavaScript没有影响。

没有扩展,你是什么意思?输入应该做什么?由于安全性限制,您不能对输入进行太多操作。选择是什么意思?如果您正在谈论拥有一个文件名列表,并且只选择列出的文件扩展名,那么可以执行
string.match(\.*\.jpg.*.\.gif.*.\.png\)
哪个是anything.gif或anything.jpg或anything.png?你的回答是喜欢吗?我想他想选择一个文件名不带文件扩展名的文件,比如“image”而不是“image.img”。我根据你的反馈更新了问题。我希望它更清楚。更新了我的答案。这不是一个很大的变化,但希望更明确。