Finally I developed a solution.
- Add a class “fileUpload” to the input element that will hold the file to be uploaded.
- Set a id as something-pkUser. I sit id=”fileUpload-1″ dynamically created whit php.
- 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).
-
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?