PHP上传文件和写TXT文件

时间:2018-06-03 19:43:32

标签: php

这个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");

1 个答案:

答案 0 :(得分:0)

将上传文件的名称写入文本文件使用“a +”而不是“w +” 它们之间的区别是

“w +”打开文件进行读写,并将文件指针放在文件的开头

“a +”打开文件进行读写,并将文件指针放在文件的末尾

$log_avatar = fopen('../archive/avatar.txt', 'a+');

你也可以使用PHP_EOL

添加换行符
fwrite($log_avatar, $img_name.PHP_EOL);

这就是文本文件变空的原因

关于上传文件您的代码没有任何问题。 但我认为你的html表单中有错误,因为filename是空白的

确保将表单enctype属性设置为“multipart / form-data”

<form method="POST" enctype="multipart/form-data" action="up.php">

并在上传脚本中使用正确的输入名称