pdf文件上传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); } }); 

这是我如何在我的PHP代码中使用ajax上传我的pdf文件我这样做

 $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); 

从我的input(type file)我如何将value(the pdf file)放入data(in ajax)和从data(ajax)如何将它传递给php文件,以便我可以检查$_files是否不空

尝试从files[0]属性创建一个json对象,将file转换为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/

使用jQuery版本“jquery-1.10.2.min.js”

使用这个AJAX

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

在PHP页面上只需使用此行

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

在这段代码中,我使用了两个新事件

  1. 内容类型
  2. 处理数据

这是使用这些来上传和访问AJAX中的所有数据所必需的。

希望这会帮助你。