如何通过jQuery将文件发送到PHP? [英] How to send file to php via jQuery?
本文介绍了如何通过jQuery将文件发送到PHP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试通过jQuery将文件发送到PHP文件进行处理.
I try send a file via jQuery to a PHP file for processing.
<form action="help-uploader.php" method="POST" class="signup" id="upform" enctype="multipart/form-data">
<input type="text" id="title" name="title" tabindex="1" value="">
<input id="file" type='file'" />
<button class="submitbtn" id="submit">submit</button>
</form>
和jQuery:
$(document).ready(function(){
$('#submit').click(function (e) {
// custom handling here
e.preventDefault();
var ititle = $("#title").val();
var ifile = $("#file").val();
$.post("help-uploader.php",
{
title: ititle,
file: ifile
},function(data, status){alert("Data: " + data + "\nStatus: " + status);});
});
});
和 ** help-uploader.php **
<?php
echo $_POST['file'];
echo basename($_FILES["file"]["name"]);
?>
第一个ECHO打印客户端中文件的路径.
First ECHO prints path of file in client.
第二个ECHO不打印任何内容.
Second ECHO not prints anything.
如何通过jQuery正确地将文件发送到PHP?
How can I send a file to PHP via jQuery correctly?
推荐答案
您需要使用formdata.我提供了一个示例函数,该函数接受参数,即表单引用和函数回调来执行操作.此函数将表单提交上的事件绑定在一起.尝试以下-
You need to use formdata . I am providing a example function which takes arguments ,i.e form refrence and functions callback to do stuff.This function binds event on your form submit. Try below-
function sendAjaxForm(frm,callbackbefore,callbackdone)
{
var form = frm;
form.submit(function(event){
event.preventDefault();
var formData = new FormData(this);
var ajaxReq=$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
beforeSend: callbackbefore
});
ajaxReq.done(callbackdone);
}); // submit done
}
现在像您的示例一样调用该函数
Now call that function as in your example
sendAjaxForm($('#upform'),function(){alert('sending');},function(data){alert("Data: " + data);})
这篇关于如何通过jQuery将文件发送到PHP?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文