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}