将文件转换为网址中的可下载文件-javascript

时间:2018-10-01 12:16:13

标签: javascript html url server upload

是否可以上传本地存储在我们计算机中,服务器中的文件,并具有下载该文件的最终URL?

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

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

我需要执行此操作,因为我使用的是API(使用网页上的.xls文件执行excel预览的API),并且我们需要文件的网址。

2 个答案:

答案 0 :(得分:0)

您需要某种服务器端机制来处理上传的文件(例如,PHP脚本或servlet或其他)。您无法直接使用Javascript访问服务器文件系统,因为Javascript在用户浏览器中本地运行。因此,只需创建一个简单的服务器端脚本即可存储上载的文件并返回服务器端文件的位置。

答案 1 :(得分:0)

您需要对此进行更多研究,直到可以尝试为止。这是使用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>

php upload.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

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

阅读this了解更多信息。