通过AJAX传递图像

基本上我想在提交表单时传递带有ajax的图像文件并检索图像并通过电子邮件将其作为附件文件发送:

这是表格

Parcourir

我似乎无法找到代码中的错误! 这是AJAX调用

 jQuery(document).on("click", "#submit", function(e) { e.preventDefault(); var fileInput = document.getElementById('image_input_field'); var file = fileInput.files[0]; var formData = new FormData(); formData.append('file', file); // console.log(file); var societe = $("input#societe").val(); var message = $("textarea#message").val(); jQuery.ajax({ url: "ajax.php", type: "post", data: { 'file': file, 'module' : 'ajax_data_form', 'societe': societe, 'message': message }, cache: false, success: function(reponse) { if(reponse) { alert(reponse); // console.log(reponse); // jQuery('#devis').trigger("reset"); } else { alert('Erreur'); } } }); }); 

这是ajax.php

 <?php if( isset($_POST['module']) && $_POST['module'] == "ajax_data_form" ) { var_dump($_FILES); } 

 $.ajax({ type: "POST", url: pathname, data: new FormData($('#devis')[0]), processData: false, contentType: false, success: function (data) { $("#divider").html(data); } }); 

并通常在$_FILES[];获取文件数据$_FILES[];

你能试试吗

  

在ajax.php中

写吧

  echo 'something'; 

您可能已经知道,无法通过ajax调用处理文件上传,一旦HTML5 FILE I / O Api准备好并由主流浏览器实现,就可以实现。

您可以使用jQuery iframe post form插件在iframe中发布数据,因此用户体验类似于ajax调用(页面的部分更新)。

这是链接: https : //github.com/dogzworld/iframe-post-form

说明:“这个jQuery ajax上传插件创建一个隐藏的iframe并设置表单的目标属性以发布到该iframe。当表单提交时,它被发布(包括文件上传)到隐藏的iframe。最后,插件收集服务器来自iframe的响应。“

如上所述,您可以从服务器发送响应并相应地在您的网页上显示更新。 必须有一个演示页面,但它现在不起作用。

您也可以将其用于文件上传。

调用示例:

 jQuery('#frmId').iframePostForm({ json : true, post : function () { //return true or false return true; }, complete : function (response) { //complete event console.log(response); } }); 

使用Jquery插件调用Jquery Form插件链接

我建议只使用jquery提交表单,你想要的数据可以将它们保存在隐藏的字段中。

 $("#devis").ajaxSubmit(options); return false; 

你可以像这样轻松地在php页面中获取文件

 $ImageTempname = $_FILES['ImageFile']['tmp_name']; $ImageFilename = $_FILES['ImageFile']['name']; $ImageType = $_FILES['ImageFile']['type']; 

等等…..