3

我有一个我认为成功的 php 文件,它采用两个参数,一个文件名和一个路径,并尝试使用以下代码调用它。

<html>
<body>
<form action="/var/www/upload_file.php foo.php docs/School/" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

其中 foo.php 和 docs/School/ 是我的两个论点。但是,当我单击提交时,它说:

“在此服务器上找不到请求的 URL /var/www/upload_file.php foo.php docs/School/。”

我知道这种传递适用于 php 中的 exec 命令,但我只是不确定 html 中的格式。

4

3 回答 3

5

这不是您通过网络发送内容的方式。您的表单应如下所示:

<form action="upload_file.php" method="post" enctype="multipart/form-data">
    <!--Note the relative path above; not a direct path to a server location-->
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="Submit">
</form>

然后在您的upload_file.php页面中,您可以使用 $_POST 引用这些值:

<?php
    $file = $_POST['file']; // Whatever the "name" was in the HTML element
?>

编辑:

只是注意到<input/>有一个“文件”类型。为此使用$_FILES

于 2013-09-18T01:07:07.450 回答
1

您应该从隐藏字段中传递参数并相应地修改 php。“动作”是从用户的角度来看的——将“/var/www/upload_file.php foo.php docs/School/”放入浏览器是行不通的,所以同样也行不通。

于 2013-09-18T01:05:29.333 回答
0

您需要使用 MVC 框架,它将 GET 请求路由到适当的控制器和方法并传入您的参数您还需要使用分段 URL:

'/控制器/方法/param1/param2'。

于 2013-09-18T01:08:50.283 回答