将上传的文件传递给Python脚本

2 投票
1 回答
2549 浏览
提问于 2025-04-17 13:27

我正在尝试将用户上传的文件作为参数传递给一个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脚本之前没有发生错误。

这样解释有帮助吗?

撰写回答