【问题标题】:Convert a file into a downloadable file in url - javascript将文件转换为 url 中的可下载文件 - javascript
【发布时间】:2019-03-06 13:15:46
【问题描述】:

是否可以上传本地存储在我们计算机、服务器中的文件,并有一个最终的 url 来下载它?

像这个例子(这是一个 excel 文件):

http://mapa.aji-france.com/mapa/file/marche/18143/DPGF%20VIERGE%20URUGUAY%20LABORATOIRES%20H174-H176-BUANDERIE.xls

我需要这样做,因为我正在使用 API(在网页上使用 .xls 文件进行 excel 预览),并且我们需要文件的 url..

【问题讨论】:

    标签: javascript html url server upload


    【解决方案1】:

    您需要一些服务器端机制来处理上传的文件(例如 PHP 脚本或 servlet 或诸如此类)。您不能使用 Javascript 直接访问服务器文件系统,因为 Javascript 在用户浏览器中本地运行。所以只需创建一个简单的服务器端脚本来存储上传的文件并返回服务器端文件位置。

    【讨论】:

    • 你能用一些代码解释一下吗?我并没有真正做很多 php 所以.. @TheCoprolal
    • 在开始开发 Web 应用程序之前,我认为必须了解浏览器和服务器如何通过 HTTP 协议进行通信,以及客户端和服务器端代码如何相互补充。所以我认为通过一个关于 Web 应用程序开发的初学者教程是要走的路。然后你会在旅途中遇到更少的单向街道。
    【解决方案2】:

    在您可以尝试之前,您需要对此进行更多研究。下面是使用 PHP 的快速概述,我知道您指定了 Javascript,但 PHP 在这方面非常擅长。

    您必须创建两个文件,一个 html 文件,您可以在其中以图形方式上传文件,以及一个 PHP 文件,用于获取该文件并将其放在服务器上。

    HTML:

    <form hidden action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file" name="fileToUpload" id="fileToUpload" class="ui button">
        <input type="submit" value="upload" name="submit" class="ui primary button">
    </form>
    

    phpupload.php:

    <?php
       $target_file = "where/to/upload/remotely" . basename($_FILES["fileToUpload"]["name"]);
       move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file) or die ("failed");
    ?>
    

    您应该将这两个文件存储在您的公共 html 目录中,通常在 unix 上为 /var/www/html。 PHP 文件需要允许执行它的权限。对此有一些配置,在网上很难解释,这只是向您展示了它如何工作的一个非常简单的抽象。

    在提交 html 表单时,点击提交按钮,upload.php 被执行(作为表单的操作),这将获取文件名并将其移动到服务器上的指定目录。

    然后假设上传成功,远程文件名将与文件原始名称相同。假设我将hello.txt 上传到thisserver.net,远程路径将是thisserver.net/hello.txt

    此代码假定您已安装网络服务器,例如 apache2。它还假设您已将 php 配置为与所述网络服务器一起使用。

    阅读this了解更多信息。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 2012-06-15
      • 2013-11-11
      • 2013-10-30
      • 2019-08-24
      • 2016-02-14
      • 2020-10-16
      • 2019-10-27
      • 1970-01-01
      相关资源
      最近更新 更多