我有一个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中的格式化。
答案 0 :(得分:4)
这不是你通过网络发送内容的方式。您的表单应如下所示:
<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
。
答案 1 :(得分:1)
您应该从隐藏字段传递参数并相应地修改php。 “行动”是从用户的角度来看 - 将“/var/www/upload_file.php foo.php docs / School /”放入浏览器是行不通的,所以同样不会这样做。
答案 2 :(得分:0)
您需要使用MVC框架,它将GET请求路由到适当的控制器和方法并传入您的参数您还需要使用分段URL:
'/控制器/方法/参数1 /参数2'。