首先,我是这个天蓝色网络应用程序的新手,我发现这个服务的行为显然与虚拟或本地服务器不同。我有一个 php 应用程序,可以在 wwwroot 下的文件夹内加载 pdf 文件,该应用程序可以巧妙地完成此操作,我们使用以下 php 脚本:
$name= $_FILES['archivocontrato']['name'];'''
$tmppath= $_FILES['archivocontrato']['tmp_name'];'''
$rootfolder = $_SERVER['DOCUMENT_ROOT'];'''
$fullpath= $rootfolder."/pdf/".$namce;
copy($tmppath,$fullpath);
echo 'File succesfully saved to forlder!'
这部分确实有效,它加载文件,并且文件保存在提供的目录下。
但是,当我们尝试访问它并通过 html 元素锚点打开它时。当我们尝试单击时,我们收到错误 404 未找到。正在使用以下脚本:
$rootfolder = $_SERVER['DOCUMENT_ROOT'];
$fullpath= $rootfolder."/pdf/contratos/";
$actionButton = '<a href="'.$fullpath'.$row['nombre_archivo']." class="btn btn-dark" target="_blank" ContentType = "application/pdf" role="button"><i class="fa fa-file-text"></i> Ver Desc</a>';
$output['data'][] = array(
$row['Id'],
$row['Title'],
$row['Description'],
$row['fileName'],
$actionButton
);
为什么这样做,因为我们用它来填充 pd 文件列表的表。现在这两种票据在开发环境中都运行顺利,没有任何麻烦。然而,当我们将 php 应用程序发布到 azure-web-site 应用程序并单击该锚点时,我们会出现错误 404。
有人可以解释一下是否可以完全按照这种方式完成。因为假设没有存储预算,也没有 Blob 存储,所以必须在应用程序 forlder 中以这种方式完成。我们还需要配置其他东西吗?我们是否使用其他东西,例如另一个 html 元素?
我让它工作显然我们不需要完整的路径,我们应该始终假设我们位于wwwroot。基本上我放弃了所有内容,但 /pdf/ 作为目录以及文件名和 presto!