尝试上传个人资料照片时出错

时间:2015-08-26 10:55:40

标签: php upload warnings

我正在创建一个网站,我在尝试上传个人资料图片时遇到了一些错误... 这是代码:

HTML

<div id="upload_container" class="user_container profile">
<div class="container"><a class="btn cerrar"><span class="icon close"></span></a></div>
<div class="formulario">
<form action="include/php/upload.php" method="POST" enctype="multipart/form-data">
<h1>Selecciona una imagen</h1>
<input type="file" id="profileImage" name="profileImage" required />
<input type="submit" id="boton_perfil" value="Subir" class="btn" />
</form>
</div>
</div>

PHP

    <?php
    if($_FILES['profileImage']['name']){
    $mensaje = "";
    if(!$_FILES['profileImage']['error']){
        $imagen = rename($_FILES['profileImage']['tmp_name'], "user");
        $dimensiones = getimagesize(rtrim($_FILES['profileImage']['tmp_name']));
        $width = $dimensiones[0];
        $height = $dimensiones[1];

        if($_FILES['profileImage']['type'] != 'image/jpg'){
            $mensaje = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>El archivo debe tener extension .jpg</div></div></div>";
        }

        else if($width != 540 || $height != 540){
            $mensaje = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>El archivo debe ser 540x540</div></div></div>";
        }

        else if($_FILES['profileImage']['size'] > (1024000)){
            $valid_file = false;
            $mensaje = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>La imagen pesa demasiado</div></div></div>";
        }

        else if($valid_file){
            move_uploaded_file($_FILES['profileImage']['tmp_name'], "../database/usuarios/".$_POST["usuario"]."/".$imagen);
            $mensaje = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Tu imagen ha sido actualizada</div></div></div>";
        }
    } else {
        $message = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Hubo un error".$_FILES['photo']['error']."</div></div></div>";
    }
}
?>

这是错误LINK

当用户在网络中注册时,会设置默认图片。 想法是拍照,改变名称,如默认图片,并将其移动到默认图片的位置......之前做一些例外,如尺寸,尺寸等。

已更新

警告:getimagesize(C:\ wamp \ tmp \ phpF4F3.tmp):无法打开流:第6行的C:\ wamp \ www \ tapeHD \ include \ php \ upload.php中没有此类文件或目录< / p>

1 个答案:

答案 0 :(得分:1)

您已重命名临时上传文件,然后尝试使用旧名称

 $imagen = rename($_FILES['profileImage']['tmp_name'], "user");

 $dimensiones = getimagesize(rtrim($_FILES['profileImage']['tmp_name']));

稍后在您的代码中,您可以

move_uploaded_file( $_FILES['profileImage']['tmp_name'], 
                    "../database/usuarios/".$_POST["usuario"]."/".$imagen);

由于文件不存在,这也会失败。

$imagen创建的rename()是布尔true or false,而不是文件名。

您不需要在临时文件上进行重命名。执行move_uploaded_file()

时,您可以为文件选择任何名称