2017-12-31 114 views
1

Ich habe gerade ein Skript geschrieben, um Bilder hochzuladen und ich habe es lange überprüft, aber ich kann nicht finden, wo der Fehler ist. Der gesamte Code tut, was er tun soll, aber die move_uploaded_file(); Funktion nicht. Hier ist mein Code:move_uploaded_file(); funktioniert nicht

HTML:

<form method="post" id="img-form" enctype="multipart/form-data"> 
Subir imagen: <input type="file" name="file"> 
</form> 
<div id="respuesta"></div> 

JS:

$(function(){ 
$("input[name='file']").on("change", function(){ 
var formData = new FormData($("#img-form")[0]); 
$.ajax({ 
    url: "ajax/uploadimage.php", 
    type: "POST", 
    data: formData, 
    contentType: false, 
    processData: false, 
    success: function(data) 
     { 
     $("#respuesta").html(data); 
     } 
    }); 
}); 
}); 

PHP:

<?php 
require '../init.php'; 

if (isset($_FILES["file"])) 
{ 
    $file = $_FILES["file"]; 
    $nombre = $file["name"]; 
    $type = $file["type"]; 
    $ruta_provisional = $file["tmp_name"]; 
    $size = $file["size"]; 
    $gethandw = getimagesize($ruta_provisional); 
    $width = $gethandw[0]; 
    $height = $gethandw[1]; 
    $path = "img/users/"; 

    if ($type != 'image/jpg' && $type != 'image/jpeg' && $type != 'image/png' && $type != 'image/gif') 
    { 
     echo "Error, el archivo no es una imagen"; 
    } 
    else if ($size > 1024*1024) 
    { 
     echo "Error, el tamaño máximo permitido es un 1MB"; 
    } 
    else if ($width > 400 || $height > 400) 
    { 
     echo "Error la anchura y la altura maxima permitida es 500px"; 
    } 
    else if($width < 60 || $height < 60) 
    { 
     echo "Error la anchura y la altura mínima permitida es 60px"; 
    } 
    else 
    { 
     $src = $path.$nombre; 
     move_uploaded_file($ruta_provisional, $src); 
     echo "<img src='$src'>"; 
    } 
} 

Die Antwort (Daten) Ausgänge alles korrekt, aber das Bild wird nirgends hochgeladen, ich verwende xampp zum Testen

+0

Ich kann keinen Fehler sehen. Bist du sicher, dass es nicht hochgeladen wird? Check img/users/directory – halojoy

+2

Hat Ihr Webserver Schreibzugriff auf das Verzeichnis "img/users"? –

+0

Sie können versuchen mit: if (isset ($ _ FILES ["Datei"] ["Name"])) – halojoy

Antwort

0

Ihr PHP-Code scheint in Ordnung. Ich habe einige Probleme mit der Implementierung von FormData festgestellt. Bitte versuchen Sie den Code unten

JS

$(function(){ 
    $("input[name='file']").on("change", function() { 
     var formData = new FormData(); 
     formData.append('file', $(this)[0].files[0]); 
     $.ajax({ 
      url: "ajax/uploadimage.php", 
      type: "POST", 
      data: formData, 
      contentType: false, 
      processData: false, 
      success: function(data) { 
       $("#respuesta").html(data); 
      } 
     }); 
    }); 
}); 

Bitte lassen Sie mich wissen, wenn Sie immer noch Schwierigkeiten konfrontiert sind. Hoffe, das hilft. Danke

+0

Noch immer passiert das gleiche –

Verwandte Themen