将上传的文件传递给Python脚本
我正在尝试将用户上传的文件作为参数传递给一个Python脚本。
form.php
<html>
<body>
<form method="post" enctype="multipart/form-data" action = "formdata.php">
<label for="file">Upload File:</label>
<input type="file" name="file" id="file" />
<label for="user_email">Email:</label>
<input type="text" name="user_email" id="user_email" />
<input type="submit" id="submit" value="Submit" />
</form>
</body>
</html>
formdata.php
<?php
$email = $_POST['user_email'];
$uploaded_file = //don't know what to do here
$output = shell_exec("/usr/bin/python /var/www/Create.py $uploaded_file $email);
echo "<pre>$output</pre>";
?>
Create.py
# def moveMetadataFile():
# import shutil
# shutil.copyfile('/var/www/**uploaded_file**', '/var/www/temp/**uploaded_file**')
# some more code
upload = sys.argv[1]
email = sys.argv[2]
这个过程运行得很好,我能收到用户的邮件,代码也能正常工作。如果我自己指定一个文件名就没问题,但现在我想让Python脚本使用用户上传的文件。可是我完全不知道该从哪里开始?如果忽略掉注释的部分更容易回答,那也可以。
1 个回答
2
你可以通过以下方式获取文件名:
$uploaded_file = $_FILES['file']['tmp_name'];
根据PHP文档,tmp_name
的意思是:
上传的文件在服务器上存储的临时文件名。
想了解更多信息,可以查看PHP文档 | POST方法上传。你可能还想使用其他一些字段,以确保在调用Python脚本之前没有发生错误。
这样解释有帮助吗?