我正在制作一个“编辑帖子”页面,该页面允许用户上传图片以替换旧图片(显示在帖子的底部)。这是代码:
if (isset($_FILES['pic']['tmp_name']) && $_FILES['pic']['name']!=NULL) {
$target_file1 = $dir . $postid . "." . $imageFileType1;
$target_png1 = $dir . $postid . ".png";
$target_jpg1 = $dir . $postid . ".jpg";
$target_jpeg1 = $dir . $postid . ".jpeg";
if (file_exists($target_png1)) {
unlink($target_png1);
}
if (file_exists($target_jpg1)) {
unlink($target_jpg1);
}
if (file_exists($target_jpeg1)) {
unlink($target_jpeg1);
}
move_uploaded_file($_FILES["pic"]["tmp_name"], $target_file1);
}
通过测试,我知道只要新图片与原图不同,它就能正常工作。但如果它是相同的扩展名,则删除旧的扩展名,move_uploaded_file重新加载旧的扩展名。
我知道这是因为我注释掉了“move_uploaded_files”并成功删除了旧文件。
为什么重新加载旧文件而不是上传文件的任何线索?