Python向PHP上传文件失败,提示“No file uploaded”问题求助
问题分析与解决
核心原因
你在Python代码里手动设置了headers = {'Content-Type': 'multipart/form-data'},这直接导致PHP无法正确解析上传的文件。
当使用requests.post()传递files参数时,requests会自动生成带正确boundary标识的multipart/form-data请求头。手动指定这个头会覆盖自动生成的内容,而缺失boundary的情况下,PHP无法识别请求中的文件字段,所以$_FILES["file"]为空,输出“No file uploaded”。
修复后的Python代码
import requests url = 'http://localhost:80/project/php/files.php' file_path = 'C:\\wamp64\\www\\project\\python\\New folder\\directory_listing.txt' with open(file_path, 'rb') as file: files = {'file': file} # 移除手动添加的Content-Type请求头 response = requests.post(url, files=files) print(response.text)
额外验证项
- 确认PHP端的
files_list/目录存在,且服务器进程对该目录有写入权限(可临时用chmod 755 files_list/测试)。 - 如果上传的文件较大,检查PHP配置中的
upload_max_filesize和post_max_size值,确保大于文件大小。 - 查看WAMP的错误日志(路径一般为
wamp64/logs/),排查是否有上传相关的服务器端错误。
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

