javascript – 在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据.
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据.,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1701字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据.](/upload/InfoBanner/zyjiaocheng/733/2f240ce7767346af859955091e68655b.jpg)
我已经查看了很多关于这个主题的帖子,所以请不要将其标记为重复,因为没有提供直接答案.但是,如果你真的相信我可能错过了一些提供跨浏览器支持的东西(IE8也是如此),请指明哪一个然后将其标记为重复.
我想使用JQuery AJAX发布文件和一些文本数据,并使用$_FILES和$_POST在服务器端访问PHP中的信息.没有AJAX,我能够这样做.问题是当我开始使用AJAX时.
这是一个简单的例子:
HTML:
<form id="upload_form" method="POST" enctype="multipart/form-data">
<input type="text"/>
<input type="file"/>
<button type="submit">Submit</button>
</form>
JAVASCRIPT:
var ser_data = $('#upload_form').serialize();
...on submit... {
...
upload_promise = $.ajax({
url: 'upload1.php',
dataType: 'html',
type: 'POST',
data: ser_data,
});
...
}
好吧,我们都知道.serialize只会序列化输入的文本字段,JS不能读取文件等.我不想在这里做任何想象.我只需要一种机制来访问服务器端PHP中的$_FILES和$_POST,并在客户端输入文件名和文本数据.实际表单有更多字段(更多文件和文本类型),但这是问题的关键.
解决方法:
要通过ajax发送文件和发布数据,您应该使用FormData对象.
https://developer.mozilla.org/docs/XMLHttpRequest/FormData
var fd = new FormData();
var myFileInput = $(" ... "); //adapt to access your file input
var files = myFileInput[0].files ;
// The loop is there to handle file inputs with multiple files
for(var i = 0, c = files.length ; i<c ; i++){
var blob = new Blob(files[i]);
var fileAccessName = "myFiles_"+i ;
fd.append(fileAccessName, blob, files[i].name);
}
// You can also send simple data along your files
fd.append('otherData', $("...").val());
$.ajax({
url: ... , //the form's target
data: fd,
processData: false,
type: 'POST',
success: function(rep){
// ...
}
}
// since we are sending the form trough jQuery, you should also add a ev.preventDefault() to your .submit(function(ev){}) callback
内容总结
以上是互联网集市为您收集整理的javascript – 在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据.全部内容,希望文章能够帮你解决javascript – 在服务器端使用带有PHP的JQuery Ajax提交文件和文本数据.所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。