我有一个php应用程序,可将文件保存到本地计算机。我计划将其上传到plesk,但是如果这样做,我将无法访问那些文件。有没有办法让xampp充当文件服务器(例如,我的桌面可以在网络之外访问)?
我正在使用的php部分如下所示(上传部分,我在此之前定义了变量和连接):
if (isset($_GET['file_id'])) {
$ID = $_GET['file_id'];
// fetch file to download from database
$sql = "SELECT * FROM Files WHERE ID=$ID";
$result = mysqli_query($conn, $sql);
$file = mysqli_fetch_assoc($result);
$filepath = '/uploads' . $file['filename']; //this is the localhost file
if (file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filepath));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize('/uploads' . $file['filename']));
readfile('/uploads' . $file['filename']);
exit;
}
}
因此它将保存到名为“ uploads”的文件夹中。我也有一个与之比较的sql实例,对于xampp端而言并不重要,但它确实存在。
主要问题与上面的代码无关(这是它现在如何工作的示例)。相反,xampp配置文件如何工作以使其可从外部访问。所以说真的,我需要一种用IP和文件路径替换“上传”的方法。
总结:
SQL&WEB主机:Plesk
文件存储:通过我的桌面进行Xampp
答案 0 :(得分:0)
听起来您需要研究端口转发。 大多数允许您从外部访问服务器的选项都需要端口转发,而某些ISP则不允许这样做。 更好的文件管理选项是使用FTP,但这也需要端口转发,每个路由器的处理过程都不同。
一旦转发,在plesk服务器和xampp实例之间需要某种通信,您可以使用JSON为plesk实例提供文件数组(如果您正在寻找能够执行的操作)