这个SHD工作..。不知道为什么。当用户提交表单时,将文件上载到../images/,并将该文件名写入文本文件。它不会上传文件,而且会清空txt文件,我认为这意味着上传失败。
$img_name = $_FILES['avatar']['name'];
$upload_file = move_uploaded_file($_FILES['avatar']['tmp_name'], "../images/" . $img_name);
$log_avatar = fopen('../archive/avatar.txt', 'w+');
fwrite($log_avatar, $img_name);
fclose($log_avatar);
header("location:user.php");
发布于 2018-06-04 05:01:23
要将上传文件的名称写入文本文件,请使用"a+“而不是"w+”。它们之间的区别是
"w+“打开文件进行读写,并将文件指针放在文件的开头
"a+“打开文件进行读写,并将文件指针放在文件的末尾
$log_avatar = fopen('../archive/avatar.txt', 'a+');
您还可以使用PHP_EOL添加换行符
fwrite($log_avatar, $img_name.PHP_EOL);
这就是导致文本文件为空的原因
关于上传文件,您的代码中没有任何错误。但我认为您在html表单中有错误,因为文件名是空的
确保将form enctype属性设置为"multipart/form-data“
<form method="POST" enctype="multipart/form-data" action="up.php">
并在上载脚本中使用正确的输入名称
https://stackoverflow.com/questions/50670340
复制相似问题