Mysql
 sql >> Database >  >> RDS >> Mysql

il file non viene caricato in ajax php mysql

Prima di tutto la funzione serialize() non funziona per il file dovresti creare un oggetto del modulo attraverso il quale puoi pubblicare i dati e funzionerà perfettamente Ho avuto lo stesso problema e ho appena risolto il tuo problema e funziona al 100% perché l'ho testato. Si prega di controllare.Il modulo.

<form name="multiform" id="multiform" action="process.php" method="POST" enctype="multipart/form-data">
               name : <input type="text" name="name" id="name"/>
               </br>
               message : <input type="text" name="message" id="message" />
               </br>
               Image : <input type="file" name="file" id="file" />
        </form>
               <input  type="button" id="multi-post" value="Run Code"></input>
               <div id="multi-msg"></div>
 

Il copione.

<script type="text/javascript">
$(document).ready(function(){
$("#multiform").submit(function(e)
{
    var formObj = $(this);
    var formURL = formObj.attr("action");

if(window.FormData !== undefined)  
    {
        var formData = new FormData(this);
        $.ajax({
            url: formURL,
            type: 'POST',
            data:  formData,
            mimeType:"multipart/form-data",
            contentType: false,
            cache: false,
            processData:false,
            success: function(data, textStatus, jqXHR)
            {
                    $("#multi-msg").html('<pre><code>'+data+'</code></pre>');
            },
            error: function(jqXHR, textStatus, errorThrown) 
            {
                $("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
            }           
       });
        e.preventDefault();
        e.unbind();
   }
});
$("#multi-post").click(function()
    {
    //sending form from here
    $("#multiform").submit();
});

});

</script>
'); }, error:function(jqXHR, textStatus, errorThrown) { $("#multi-msg").html('
Richiesta AJAX non riuscita
textStatus='+textStatus+', errorThrown='+errorThrown+'
'); } }); e.preventDefault(); e.unbind( ); }});$("#multi-post").click(function() { //invio modulo da qui $("#multiform").submit();});});

E il tuo file php è lo stesso che ho testato e funziona.

<?php
  mysql_connect("localhost","root","");
  mysql_select_db("ajaxdatabase");

  $name=$_POST["name"];
  $message=$_POST["message"];
  //storing file in filename variable
    $fileName = $_FILES['file']['name'];
    //destination dir
    $to="image/".$fileName;

    move_uploaded_file($_FILES['file']['tmp_name'],$to);

  $query=mysql_query("INSERT INTO common(name,message,destination) values('$name','$message','$to') ");

  if($query){
    echo "Your comment has been sent";
  }
  else{
    echo "Error in sending your comment";
  }

?>