【发布时间】:2019-03-06 13:15:46
【问题描述】:
是否可以上传本地存储在我们计算机、服务器中的文件,并有一个最终的 url 来下载它?
像这个例子(这是一个 excel 文件):
我需要这样做,因为我正在使用 API(在网页上使用 .xls 文件进行 excel 预览),并且我们需要文件的 url..
【问题讨论】:
标签: javascript html url server upload
是否可以上传本地存储在我们计算机、服务器中的文件,并有一个最终的 url 来下载它?
像这个例子(这是一个 excel 文件):
我需要这样做,因为我正在使用 API(在网页上使用 .xls 文件进行 excel 预览),并且我们需要文件的 url..
【问题讨论】:
标签: javascript html url server upload
您需要一些服务器端机制来处理上传的文件(例如 PHP 脚本或 servlet 或诸如此类)。您不能使用 Javascript 直接访问服务器文件系统,因为 Javascript 在用户浏览器中本地运行。所以只需创建一个简单的服务器端脚本来存储上传的文件并返回服务器端文件位置。
【讨论】:
在您可以尝试之前,您需要对此进行更多研究。下面是使用 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了解更多信息。
【讨论】: