我需要通过ajax将文件作为表单数据传递并从php中读取?

时间:2014-03-19 09:42:35

标签: javascript php jquery ajax

我需要通过ajax将文件作为表单数据传递并从php中读取?

我有一个有文件的表单。需要发送到php文件。我不想使用

表单提交方法。我得到它..但是图像没有得到。

我的代码如下:

<form class="form-inline" role="form" method="post"  name="contact" enctype="multipart/form-data"  id="contact_form">
<div class="input-group pull-left">
 <input type="text" class="form-control" placeholder="Your Name" name="stream_cotactname" id="stream_cotactname">
      </div>
       <div style="float:left; margin-left:10px;">
        <span style="background:#000;"> <input type="file" placeholder="" name="uploaded_file" id="uploaded_file"></span>
      </div>

现在我的javascript是:

<script type="text/javascript">
var formdata = false;
(function () {    
var input = document.getElementById("uploaded_file");
        formdata = false;
    formdata = new FormData();
    input.addEventListener("change", function (evt) {
    var i = 0, len = this.files.length, img, reader, file;  
    for ( ; i < len; i++ ) {
        file = this.files[i];
            if (formdata) {
         formdata.append("uploaded_file[]", file);
            }
    }
}, false);    
}());

function contact_mailsend()
{

         var app = 'sendmail.php';
$.ajax({
url: app,
async: false,
type:"POST",
data : "stream_cotactname="+name+"&file="+formdata,
dataType: "jsonp",
contentType: 'application/x-www-form-urlencoded',
    processData:false,
      jsonp: "jsoncallback",
success: function(html){
     alert("Thank you. We will be in touch with you");
     },
 error: function(){
 alert("error");
}
});
 }
 </script>

在这里,如果我print_r(file);

,我无法在php中获取表单数据

我能够获得指定的名称。但不是表单数据(文件)

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用JQuery表单插件使用ajax上传文件,如下面的链接所示。 JQuery form plugin