【问题标题】:How can I list the files on an FTP from a (stand-alone) .html file?如何从(独立).html 文件列出 FTP 上的文件?
【发布时间】:2020-12-31 12:27:15
【问题描述】:

我正在开发一个自包含(独立)的 HTML 表单。 在表单的一部分中,我希望能够选择 FTP 上的文件的名称。

因此,在我的 .html 文件中,我试图找到一种方法来列出 FTP 上所有文件的名称。

根据我目前所读到的内容,似乎没有传统的方法可以做到这一点,因为访问 FTP 应该使用诸如 PHP 之类的服务器端语言来完成,如 herehere 所解释的。

所以我想看看我是否可以用不同的方式做到这一点。 我的一个想法是将 FTP 页面上显示的内容复制到 JavaScript 变量中,如 here 所示。

我使用德国气候数据中心的 FTP 作为示例,因为它是一个开放访问的 FTP,不需要任何登录信息。 在下面的代码中,我试图将显示在该 FTP 页面上的内容放入我的 .html 文件中的 <div> 中,然后使用 console.log 显示 <div>。 但是,如下图,我到现在还没有成功:

function start_FTP() {
  var server = "ftp-cdc.dwd.de/test/weather/radar/sites/sweep_vol_z/mem/hdf5/filter_polarimetric/";
  var ftpsite = "ftp://" + server;
  window.open(ftpsite);

  document.getElementById("FTP_content").innerHTML = '<object type="text/html" data=ftpsite ></object>';
  console.log(FTP_content);
}
<h2> List FTP content using JavaScript </h2>
<button type="button" id="FTP_button" name="FTP_button" onclick="start_FTP()">Select File Name</button>
<div id="FTP_content"> </div>

&lt;div&gt; 不包含任何有用的信息。

这只是朝着我的最终目标迈出的一步,实际上是创建一个新窗口,列出 FTP 页面上的内容,每行旁边都有一个复选框,这样用户就可以选择他想要的文件名需要。

这可以使用 JavaScript 吗? 如果没有,是否有任何其他“技巧”可用于仅使用 JavaScript 实现此目标?

编辑

我遇到的问题是我无法在服务器端做任何事情(很遗憾)。

我需要开发一个独立的 HTML 表单,该表单需要发送给许多不同的最终用户,他们需要能够“按原样”使用此表单。 这些最终用户(客户端)需要能够从可在开放访问 FTP 上看到的文件列表中选择文件名。

所以我试图复制在开放访问 FTP 页面上可见的文件名,并在每个文件名前添加一个复选框,以便最终用户可以选择对应于文件的名称(将用于进一步的数据处理)。

【问题讨论】:

  • 如果没有服务器作为中间人,我认为在网页中执行大多数 FTP 功能是不可能的
  • 你会考虑使用 PHP 吗?
  • 我遇到的问题是我无法在服务器端做任何事情。我需要开发一个独立的 html 表单来发送给不同的最终用户,这些最终用户需要能够在上传到 FTP 的文件列表中选择他们需要的文件的名称。
  • @Ken Lee 据我了解,不可能从独立的 HTML 文件运行 PHP(需要发送给许多不同的最终用户,他们需要能够使用它“原样”)。当然,如果有一种兼容的语言,我会很乐意使用它,但到目前为止我认为还没有。由于这些原因,我一直在尝试复制 FTP 页面上显示的内容。
  • 这就是我问的原因——你会考虑使用 PHP 而不是独立的 HTML。 (可能是我之前的回复太短了,抱歉)。但是,如果您使用 PHP,预计您将使用登录用户名和密码将 PHP URL 发送给您的用户,以便他们可以通过浏览器访问文件。

标签: javascript html checkbox ftp filelist


【解决方案1】:

你的意思是这样的吗? 它需要 Jquery。

Javascript,css,然后是 HTML。

function handleFileSelect (e) {
    var files = e.target.files;
    if (files.length < 1) {
        alert('select a file...');
        return;
    }
    var file = files[0];
    var reader = new FileReader();
    reader.onload = onFileLoaded;
    reader.readAsDataURL(file);
}

function onFileLoaded (e) {
    var match = /^data:(.*);base64,(.*)$/.exec(e.target.result);
    if (match == null) {
        throw 'Could not parse result'; // should not happen
    }
    var mimeType = match[1];
    var content = match[2];
    alert(mimeType);
    alert(content);
}

$(function () {
    $('#import-pfx-button').click(function(e) {
        $('#file-input').click();
    });
    $('#file-input').change(handleFileSelect);
});
#file-input {
    display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" id="import-pfx-button">Browse...</button>
<input type="file" id="file-input" />
<output id="list"></output>

【讨论】:

  • 不,不是这样:我想访问一个 FTP,例如上面我的代码 sn-p 中提供的那个; URL:ftp-cdc.dwd.de/test/weather/radar/sites/sweep_vol_z/mem/hdf5/… 我希望在新窗口中列出该 FTP 页面上列出的文件的名称,每个文件旁边都有一个复选框,以便用户可以选择他需要的文件。然后该文件的名称将插入到表单的其余部分中。
  • 我不太明白你的代码是做什么的——我不太了解 jquery,但是当我运行你的代码时,它提示我在我的计算机上选择一个文件然后似乎显示随机字符.是否可以适配JS并在上面的FTP链接中列出文件名?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 2023-02-15
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 2017-01-04
相关资源
最近更新 更多