gpt4 book ai didi

PHP访问服务器驱动

转载 作者:行者123 更新时间:2023-11-29 11:56:14 25 4
gpt4 key购买 nike

我想创建一个 PHP 网站来管理服务器上的文件。所以我在我的服务器上安装 XAMPP 并在其中运行我的程序。假设我将其安装在 C: 驱动器

我可以使用以下代码将文件上传到另一个驱动器,例如 D: 或 E: :

move_uploaded_file($_FILES['file']['tmp_name'], $drive.':/'.$cat.'/'.$catname.'/'.$newfilename)

$drive 代表我的目标驱动器,$cat 代表我的类别组,$catname 代表类别名称。我可以轻松上传文件。

问题是当我想使用以下代码调用 PHP 上的文件时:

<audio controls>
<source src="'.$query['a_drive'].':/'.$query['c_group'].'/'.$query['c_name'].'/'.$query['a_link'], 'r'.'" type="audio/'.$extension.'">
Your browser does not support the audio element.
</audio>

$query 是我从数据库获取数据的查询 (SELECT * bla bla)

我的浏览器无法打开我想打开的文件,它返回我无权访问这些文件:

Not allowed to load local resource:

有人知道如何解决这个问题吗?

最佳答案

问题在于您打印了服务器上文件的本地路径。但是,当浏览器打开页面时,它会解释客户端的本地路径并阻止对其的访问。另外,该文件位于服务器上而不是客户端上。

您可以配置网络服务器,以便可以通过网络服务器(虚拟文件夹)访问保存文件的文件夹,并在 html 代码中打印 url(而不是本地文件路径)。

或者,您使用 php 脚本根据服务器上的 get 参数打开文件,并使用适当的 mime header 打印其内容。 html 文件中的链接将通过适当的参数指向此 php 文件。

更新:file.php - 将文件输出到客户端

<?php
$filename=$_GET['filename']; //parameter identifying the file to be downloaded. Should not be direct path as in this simple example, rather than the id of the file's data stored in a database. You need to add that piece of code.
header('Content-Type: text/plain'); //set MIME type - you need to store this along your path to the file, you can get it from $_FILES['uploadedfilename']['type'] when a file is uploaded via php
header("Content-disposition: inline"); //advises the browser to open the file inside the browser
readfile($filename); //outputs the file
?>

HTML 链接:

<audio controls>
<source src="file.php?filename=yourfilename" type="...">
</audio>

让我再次强调:使用 id 来引用文件,而不是路径。

关于PHP访问服务器驱动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com