PHP 访问服务器驱动器
PHP access server Drive
我想创建一个 PHP 网站来管理我在服务器上的文件。所以我在我的服务器上安装 XAMPP 并在其中安装 运行 我的程序。假设我将它安装在 C: Drive
我可以使用此代码将文件上传到另一个驱动器,例如 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
)
我的浏览器无法打开我想打开的文件,return我没有被允许访问这些文件:
Not allowed to load local resource:
有人知道怎么解决吗?
问题是您打印了服务器上文件的本地路径。但是,当浏览器打开页面时,它会解释客户端的本地路径并阻止对其的访问。另外文件在服务器上,而不是在客户端上。
您可以通过网络服务器(虚拟文件夹)访问保存文件的文件夹并打印 url(而不是本地文件路径)在 html 代码中。
或者,您使用 php 脚本根据服务器上的获取参数打开文件,并使用适当的 mime header 打印其内容。 html 文件中的 link 将通过适当的参数指向此 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 link:
<audio controls>
<source src="file.php?filename=yourfilename" type="...">
</audio>
我再强调一次:使用id来引用文件,而不是路径。
我想创建一个 PHP 网站来管理我在服务器上的文件。所以我在我的服务器上安装 XAMPP 并在其中安装 运行 我的程序。假设我将它安装在 C: Drive
我可以使用此代码将文件上传到另一个驱动器,例如 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
)
我的浏览器无法打开我想打开的文件,return我没有被允许访问这些文件:
Not allowed to load local resource:
有人知道怎么解决吗?
问题是您打印了服务器上文件的本地路径。但是,当浏览器打开页面时,它会解释客户端的本地路径并阻止对其的访问。另外文件在服务器上,而不是在客户端上。
您可以通过网络服务器(虚拟文件夹)访问保存文件的文件夹并打印 url(而不是本地文件路径)在 html 代码中。
或者,您使用 php 脚本根据服务器上的获取参数打开文件,并使用适当的 mime header 打印其内容。 html 文件中的 link 将通过适当的参数指向此 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 link:
<audio controls>
<source src="file.php?filename=yourfilename" type="...">
</audio>
我再强调一次:使用id来引用文件,而不是路径。