Php 如何使用python(3.8)用enctype=';多部分/表单数据';?

Php 如何使用python(3.8)用enctype=';多部分/表单数据';?,php,python,html,Php,Python,Html,我正在填这张表 <form enctype="multipart/form-data" action="upload.php" method="POST"> <p>Upload your file</p> <input type="file" name="uploaded_file"></input><br /> <input type="text" name="id"></inpu

我正在填这张表

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <p>Upload your file</p>
    <input type="file" name="uploaded_file"></input><br />
    <input type="text" name="id"></input><br />
    <input type="submit" value="Upload" name="upload"></input>
  </form>
但它不起作用

如果我手动填写表单,它会正常工作,我还会向您展示upload.PHP的PHP代码:

<?php
    if(!empty($_FILES['uploaded_file'])){

        $id = $_POST['id'];
        $path = "users/".$id."/files/";
        $path = $path . basename( $_FILES['uploaded_file']['name']);

        if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)){

            echo "The file '".  basename( $_FILES['uploaded_file']['name']).
            "' has been uploaded in path: ".$path."\n";

        }else{
            echo "There was an error uploading the file, please try again!";
        }
    }
?>

文件=
中,您应该只发送
文件
,而不是
id

files={'upload_file': open(path, "rb")}
最后,我会提供一些关于这个文件的信息

files={'upload_file': ('foobar.txt', open(text,'rb'), 'text/plain')}
id
应该在
data=
中(最终在
json=
params=
中)



顺便说一句:在PHP中,您可以添加显示从客户端获得的值的代码,然后您将看到来自
表单的数据与来自
请求()的数据之间是否存在差异。

也许在PHP中添加显示您获得的值的代码,然后您将看到是否存在差异。
input()
始终提供字符串,因此无需在
文件=
中使用
str()
,您应该只发送文件,而不是
id
id
应该在
data=
中,我在
请求中更改了我的代码。post(url,files=file,data={'id':id})
现在它工作了,非常感谢!
files={'upload_file': ('foobar.txt', open(text,'rb'), 'text/plain')}
data={'id': id}