PHP上传和覆盖照片文件

Posted

技术标签:

【中文标题】PHP上传和覆盖照片文件【英文标题】:PHP Upload and overwrite photo file 【发布时间】:2012-12-06 14:44:28 【问题描述】:

我正在使用一些非常简单的 php

用户上传具有某些目的地和相同名称的照片文件,以便最新上传的文件会覆盖旧版本。

现在我的代码似乎可以工作。我得到了我应该的上传评论,但目标文件夹中没有文件。 我一直在搜索***,但我似乎无法弄清楚。

HTML:

<form enctype="multipart/form-data" action="upload_file.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

PHP:

<?php
    $uploaddir = 'profilepicture/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    echo "<p>";
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) 
       echo "File is valid, and was successfully uploaded.\n";
     else 
       echo "Upload failed";
    
    echo "</p>";
    echo '<pre>';
    echo 'Here is some more debugging info:';
    print_r($_FILES);
    print "</pre>";
?>

【问题讨论】:

print_r($_FILES) 的输出是什么? 您看到任何错误吗? (你可能想打开ERROR_REPORTING(E_ALL)。你能发布print_r($_FILES)的结果吗? 您确定要检查与您的 PHP 文件相关的 profilepicture 文件夹吗?请记住,任何用户都可以上传“另一个”用户的文件名,从而替换他们的图片。可能会附加用户 ID(如果他们已登录)。 感谢您的意见。 Darhazer 和 Edga,我从错误报告中得到:文件有效,并且已成功上传。 “这里还有一些调试信息:Array ( [userfile] => Array ( [name] => navigation.jpg [type] => image/jpeg [tmp_name] => /var/tmp/phpbfXB6s [error] => 0 [size] => 10787)) Array ([userfile] => Array ([name] => navigation.jpg [type] => image/jpeg [tmp_name] => /var/tmp/phpbfXB6s [error] => 0 [大小] => 10787 ) )" 【参考方案1】:

确保您的MAX_FILE_UPLOAD_SIZE 已设置为大于 2BM(php.ini 中的默认设置)。根据我的经验,我将其设置为 20MB,因此对于大于 2BM 的图像也会上传

【讨论】:

【参考方案2】:

您使用的平台是什么?如果是unix,请检查“头像”权限和正确的相对路径。

【讨论】:

感谢 redwind 的回答 - 我如何检查权限?

以上是关于PHP上传和覆盖照片文件的主要内容,如果未能解决你的问题,请参考以下文章

php 事件日历:覆盖默认的iCal导出为超过30个即将发生的事件(仅影响列表,地图和照片视图)。

php 事件日历:覆盖默认的iCal导出为超过30个即将发生的事件(仅影响列表,地图和照片视图)。

在 PHP (linux) 中覆盖文件/函数

php 为用户上传自定义头像以覆盖gravatar以获取评论和author_meta

PHP文件上传

asp.net如何避免把上传的文件覆盖掉