区块链技术博客
www.b2bchain.cn

尝试使用AJAX上载文件时,FormData对象始终为空 – php程序员分享

本文介绍了尝试使用AJAX上载文件时,FormData对象始终为空 – php程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

当尝试使用AJAX上传图像而不直接提交表单并将FormData对象发送到服务器时,它将返回空的$_FILES数组。但是,如果我使用<input type="submit">标记提交表单,则$_FILES数组不会为空,并且会接收数据。

的HTML

<form action="core/update.php" method="post" enctype="multipart/form-data" id="profile-photo" name="profile-photo-form">   <input type="file" id="photo-filename" name="avatar" class="edit-show panel photo-upload"> </form> <button class="save-button" disabled="disabled">Save</button> 

JS

$('#profile-photo').on('submit', function(e) {     e.preventDefault();      var form = $('#profile-photo')[0];     var formData = new FormData(form);      formData.append('avatar', $('#photo-filename')[0].files[0]);      $.ajax({       url: "core/update.php",        data: formData,       type: "POST",        contentType: false,              cache: false,                    processData: false     });      console.log(formData); });  $('.save-button').on('click', function() {     if ($('#photo-filename').val != '') {         $('#profile-photo').submit();     }; } 

UPD

同样,$('#profile-photo').serialize()返回空字符串。

UPD 2

它可以与页面上的其他AJAX请求冲突吗?

php参考方案

尝试这个:

因为用户可能会上传多个文件

jQuery.each(jQuery('#photo-filename')[0].files, function(i, file) {     data.append('file-'+i, file); }); 

代替

formData.append('avatar', $('#photo-filename')[0].files[0]); 

完整的解决方案:

$('#profile-photo').on('submit', function(e) {     e.preventDefault();  var form = $('#profile-photo')[0]; var formData = new FormData(form);   jQuery.each(jQuery('#photo-filename')[0].files, function(i, file) {     formData.append('file-'+i, file); });  $.ajax({   url: "core/update.php",    data: formData,   type: "POST",    contentType: false,          cache: false,                processData: false });      console.log(formData); }); 

php:是否有充分的理由引用所有数组键/索引? – php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems [‘名称’]因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

在单次点击甚至点击链接时创建不同的功能 – php

我有3个链接,它们是学生的名字。第一次单击链接或奇数时间时,会出现另一个div,其中包含该学生的详细信息。在第二次或偶数时间单击同一链接时,我需要隐藏学生div。使用jquery的data()事件对我来说效果很好。我的要求是,如果我单击第一个学生链接,则会显示第一个学生的详细信息。如果单击第二个学生链接,则会显示第二个学生的详细信息。如果再次单击第一个链接,…

PHP标头功能不起作用 – php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://…/student.p…

验证php中的javascript对象 – php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

将输入类型复选框关联到输入类型文本 – php

我有一个问题,我需要将输入类型复选框与输入类型文本关联。情况如下:从数据库中提取数据。 PK数据是复选框的值。当复选框选择输入类型的文本时,您可以在其中输入特定数字。现在的问题是,选中所有类型的复选框输入文本都会被激活。我希望通过选择复选框输入,仅启用与复选框相关联的输入。我的HTML代码(此代码创建一个输入复选框,并为数据库中的每个记录输入文本,而我要激活…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 尝试使用AJAX上载文件时,FormData对象始终为空 – php程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们