【问题标题】:files are not saved in folder after upload using PHP使用PHP上传后文件未保存在文件夹中
【发布时间】:2015-10-06 11:19:06
【问题描述】:

我正在尝试将图像上传到数据库并将它们保存在 uploads/userimage 中,以便可以在网站上显示图像。但是我的问题是图像没有保存在我的目录中:uploads/userimage。

session_start(); 
include("functions/phpthumb/dbup.php");

$id = $_SESSION['werknemerid'];

// upload picture
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_SESSION['werknemerid'] != null){  
        if(!empty($_FILES["image"]["tmp_name"])) {
            // set default variables
            $image_folder = "../uploads/userimage";
            $image_tmp   = $_FILES["image"]["tmp_name"];
            $image_ext = pathinfo($_FILES["image"]['name'], PATHINFO_EXTENSION);
            $image_name  = $_SESSION['voornaam']."".$_SESSION["tussenvoegsel"]."".$_SESSION['achternaam'].".".$image_ext;

            // move the uploaded file 
            if(move_uploaded_file($image_tmp, $image_folder."/".$image_name)) // I think the problem is somewhere in this if statement
            {
                // load PHPThumb library
                require_once("functions/phpthumb/ThumbLib.inc.php");
                // create new thumbnail
                $thumb = PhpThumbFactory::create($image_folder . "/" . $image_name);
                $thumb->adaptiveResize(80,80);
                $thumb->save($image_folder . "/" . $image_name);            
            }

            $query = "UPDATE werknemer SET image = ? WHERE werknemerID = ?";
            execSQL($query, array("si", $image_name, $id), true);
            echo "<script>alert('Uw afbeelding is gewijzigd!');</script>";
            echo "<meta http-equiv='refresh' content='0; url=mijnaccount' />";
        }
    }
}
// get image from database
if ($_SESSION['werknemerid'] != null){  
    $pagina_query = "SELECT image FROM werknemer WHERE werknemerID = ?";
    $pagina_result = execSQL($pagina_query, array("i", $id), false);
    $pagina_row = $pagina_result[0];
    $_SESSION["image"] = $pagina_row[image];
}

我不知道我做错了什么...... :(

有人可以帮忙吗?

【问题讨论】:

  • 检查你上传的文件夹路径
  • 确保“网络用户”对该文件夹有足够的写入权限。
  • @Prafulla 上传的文件夹路径不错。
  • var_dump($_FILES); 这说明了什么?
  • 将错误报告添加到文件顶部,紧跟在打开 PHP 标记之后,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果。如前所述,检查该文件夹具有的权限。它应该是 755,或者作为“最后的手段”,777。

标签: php image upload


【解决方案1】:

也许您知道 $_FILES 变量已设置好,但如果没有,请确保您的表单标签中有 enctype="multipart/form-data"。

开启错误报告。你会得到一个文件由于权限而无法保存。

【讨论】:

  • 如果没有this............,OP 将看不到它。另外,我已经告诉他们检查错误。
  • 我的表单标签中有enctype="multipart/form-data",从错误报告中我得到:Warning: move_uploaded_file(../uploads/userimage/MarjoleinAardewijn.jpg): failed to open stream: No such file or directory in /home/wwm/domains/beveiligingsvacature.com/public_html/wijzigafbeelding.php on line 34 Warning: move_uploaded_file(): Unable to move '/tmp/php4cleQc' to '../uploads/userimage/MarjoleinAardewijn.jpg' in /home/wwm/domains/beveiligingsvacature.com/public_html/wijzigafbeelding.php on line 34
  • 现在我得到:Warning: move_uploaded_file(uploads/userimage/MarjoleinAardewijn.jpg): failed to open stream: Permission denied in /home/wwm/domains/beveiligingsvacature.com/public_html/wijzigafbeelding.php on line 34 Warning: move_uploaded_file(): Unable to move '/tmp/phpxjmfrX' to 'uploads/userimage/MarjoleinAardewijn.jpg' in /home/wwm/domains/beveiligingsvacature.com/public_html/wijzigafbeelding.php on line 34 Notice: Use of undefined constant image - assumed 'image' in /home/wwm/domains/beveiligingsvacature.com/public_html/wijzigafbeelding.php on line 56
  • 并且我的文件夹上传和所有子文件夹的权限是766
  • 它现在正在工作我的问题的答案是:将我的文件夹和子文件夹的权限设置为 777!
【解决方案2】:

这个问题的答案:

将文件夹子文件夹的权限设置为777!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2013-03-21
    • 2013-02-14
    • 2013-08-23
    • 2022-01-15
    • 2022-01-06
    • 2014-08-05
    相关资源
    最近更新 更多