file pdf upload ajax html

var file = $('#image').prop('files')[0]; var filename = $('#af_rpta_propertyland_filename').val(); var form_data = new FormData(); form_data.append('file', file); alert(form_data); $.ajax({ type: 'POST', url: '../include/upload.php', //dataType: "json", data: { file: form_data, filename: filename }, success: function(data) { console.log(data); for (var i = 0; i < data.length; i++) { console.log("file " + i + ": " + data[i].file); } }, error: function(data) { alert('No Record Found: ' + data); } }); 

Ecco come faccio a caricare il mio file pdf usando ajax nel mio codice php lo faccio così

 $file = mysql_real_escape_string($_POST['file']); $filename = mysql_real_escape_string($_POST['filename']); if (isset($_FILES['file']) && $_FILES['file']['size'] > 0) { $tmpName = $_FILES['file']['tmp_name']; $filetype = $_FILES['file']['type']; $fp = fopen($tmpName, 'rb'); // read binary $upload[] = array('filename' => $filename,'file' => $fp); } echo json_encode($upload, JSON_UNESCAPED_UNICODE); 

Dal mio input(type file) come posso inserire il value(the pdf file) nei data(in ajax) e dai data(ajax) come posso passarlo al file php in modo che possa controllare se $_files non è vuoto

Prova a creare un object json dalle proprietà files[0] file , convertendo il file in una stringa base64

js

 $("#image").on("change", function(e) { var name = $("#af_rpta_propertyland_filename").val() , file = e.target.files[0] , filename = name.length > 1 ? name + ".pdf" : file.name , filetype = file.type , filesize = file.size , data = { "filename":filename, "filetype":filetype, "filesize":filesize } , reader = new FileReader(); reader.onload = function(e) { data.file_base64 = e.target.result.split(/,/)[1]; $.post("fileupload.php", {file:data}, "json") .then(function(data) { // parse `json` string `data` var filedata = JSON.parse(data) // do stuff with `data` (`file`) object , results = $("", { "href": "data:" + filedata.filetype + ";base64," + filedata.file_base64, "download": filedata.filename, "target": "_blank", "text": filedata.filename }); $("body").append("
download:", results[0]); }, function(jqxhr, textStatus, errorThrown) { console.log(textStatus, errorThrown) }) }; reader.readAsDataURL(file) });

php

  

jsfiddle http://jsfiddle.net/guest271314/LL95z474/

Utilizza la versione di jQuery “jquery-1.10.2.min.js”

Usa questo AJAX

 $.ajax({ url: "YourPage.php", type: "POST", data: new FormData('YourFormId'), contentType: false, processData:false, success: function(data) { // Do your Stuff } }); 

Alla pagina PHP basta semplicemente usare questa linea

 $name = $_FILES['file']['name']; 

In questo codice ho usato due nuovi eventi

  1. tipo di contenuto
  2. dati di processo

È necessario utilizzarli per caricare e accedere a tutti i dati in AJAX.

Spero che questo ti possa aiutare.