2015-08-26 4 views
-1

Im создание веб-сайта и у меня есть некоторые ошибки при попытке загрузки картинки профилей ... Это код:Ошибка пытается загрузить фотографию

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): не удалось открыть поток: нет такого файла или каталога в C: \ wamp \ www \ tapeHD \ include \ php \ upload.php в строке 6

+0

Можете ли вы включить ошибку в вопрос, чтобы ее было легче увидеть? –

+0

Как побочное замечание, это плохая практика хранения загруженных пользователем файлов внутри веб-сайта. Я не могу сказать, имеет ли это значение здесь, но хотел повысить осведомленность об этом. –

+0

** Вы не должны изменять вопрос, как только он был дан ответ **, так как как только вы его изменяете, он делает любой ответ уже опубликованным неуместным и бессмысленным. Как я уже сказал, вы должны задать ** новый вопрос **, поэтому любые предложенные ответы имеют отношение к вопросу. – RiggsFolly

ответ

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()

+0

ОК, я сделал это, и предупреждения не появляются ... Но это еще не работает. Я изменил код, и когда я загружаю фотографию, ничего не происходит. Даже ошибки не отображаются: S – Antonio

+0

Хорошо, вам лучше задать другой вопрос. Отправьте код так, как сейчас, после изменений, чтобы мы могли искать новую проблему. – RiggsFolly

+0

Сделано, некоторая помощь будет приятной. Большое спасибо – Antonio

Смежные вопросы