[Solved] How to send data to server while upload file?


Finally I developed a solution.

  1. Add a class “fileUpload” to the input element that will hold the file to be uploaded.
  2. Set a id as something-pkUser. I sit id=”fileUpload-1″ dynamically created whit php.
  3. Make a little change on the javascript code above. Go to the function uploadFile() and create a parameter “n”. It will be like that uploadFile(n).
  4. Inside this function go to the fd.append(…,…) part and change the first an second parameter ‘fileToUpload’ for “n”, you have created. You will have the follow:

    fd.append(“fileToUpload”, document.getElementById(‘fileToUpload’).files[0]);

changed by this:

fd.append(n, document.getElementById(n).files[0]);

Now you must change jquery code:

before was that:

$(document).on("click", "#btnSd", function(){
        uploadFile();      
    }); 

Now will be like that:

$(document).on("click", "#btnSd", function(){
        uploadFile($(".fileToUpload").attr('id'));      
    });  

And finally, ajax will send will send data to server. We can clear the string with php substrigs functions. This was my solution:

foreach ($_FILES as $key => $value) {
$arrFile = $key;                           
$pkUser = substr($arrFile,(int)$pos=strpos($arrFile, "-")+1);    
$filename=$_FILES[$arrFile]['name'];
$ext = substr($filename,strpos($filename, ".")); 
}

$finalName=$pkUser.$ext;

    if ( move_uploaded_file( $_FILES[$arrFile]['tmp_name'], "pic/".$finalName ) ) {
        echo $finalName;
    }
    else {
        echo "There was a problem uploading your file - please try again.";
    }    

Finally this works good! I can send the user’s primary key and store as I want.

solved How to send data to server while upload file?