当前位置: 首页 > 知识库问答 >
问题:

发送post数据输入文本和文件(php,jquery,ajax)事件点击

能逸清
2023-03-14

我有一个表单html,然后我有两个输入(输入文本和输入文件),我的问题是输入文本无法发送帖子上传php。我使用jquery ajax发布数据

upload.php

<?php


$nama   = $_POST['name'];
$filename = $_FILES['file']['name'];


var_dump($nama);
var_dump($filename);

类型

 <form method='post' action='' enctype="multipart/form-data">
                       <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />

                        Select file : <input type='file' name='file' id='file' class='form-control' ><br/>

          <input type='button' class='btn btn-info' value='Upload' id='upload'>
        </form>
<script type="text/javascript" >
  $(function() {
  $("#upload").click(function() {
    var name = $('#name').val();
    var fd = new FormData();
    var files = $('#file')[0].files[0];
    fd.append('file',files);

    $.ajax({
      type: "POST",
      url: "upload.php",
      dataType: 'text',  // what to expect back from the PHP script, if anything
      cache: false,
      contentType: false,
      processData: false,
      data: fd,
      success: function(){

      }
    });
  return false;
  });
  });
</script>

共有1个答案

张森
2023-03-14

只需删除dataType: text。或者您可以根据您的要求使用dataType:"json"。好吧,您也可以在此处阅读有关此数据类型的更多信息:$. ajax-dataType

对于name参数,您缺少在fd变量中附加该变量。

所以,你的脚本应该是这样的:

<script type="text/javascript" >
$(function() {
$("#upload").click(function() {
var name = $('#name').val();
var fd = new FormData();
var files = $('#file')[0].files[0];
fd.append('file',files);
fd.append('name',name); // you were missing this, that's why $_POST['name'] was blank
$.ajax({
  type: "post",
  url: "upload.php", 
  cache: false,
  contentType: false,
  processData: false,
  data: fd,
  success: function(){

  }
});
return false;
});
});
</script>

现在尝试将下面的代码打印到您的上传中。php文件:

<?php
echo $nama   = $_POST['name'];
echo $filename = $_FILES['file']['name'];
?>
 类似资料:
  • 问题内容: 所以我知道有很多类似的帖子,但是我认为这足以满足自己的疑问: 我正在用PHP和jQuery构建XLS导出器。我正在尝试使用jQuery发布一个数组(我相信它与GET查询字符串一样长),并用它在我的服务器上生成XLS文件,然后用户可以下载该文件。 过去,我使用隐藏的iframe来完成此操作,但是由于它们只是重定向到url,因此这要求我使用GET,这使我感到紧张。 我的问题是:如果这些文件

  • 问题内容: 我想要做的是每当用户选择图片并单击按钮时,它将把图像移动到特定的文件夹,并将链接保存到数据库的user_image列。 我的问题是,单击“提交”按钮后,图片的实际名称未保存在数据库列中。示例多数民众赞成在数据库中保存的值没有图片文件名。 我认为photo.php没有收到文件的值,任何人都可以帮助我解决它。 脚本: photo.php 问题答案: 看看这个http://malsup.co

  • 我有一个HTML表单,输入文本字段,最后将图像文件上传到服务器。(HTML文件: 但是我无法上传文件,但可以看到数据库中的文本存档值。我试图上传图像文件到一个文件夹使用getimagesize($_FILES['filename']['tmp_name']和move_uploaded_file()从临时文件夹移动到特定的文件夹。 FireHP将警告消息显示为:getimagesize()[func

  • 所以我有这个问题,我不可能读取/保存文件由Ajax/jQuery我发送使用这个 这是我对发送JQuery的尝试: 而且,我无论如何也不能用PHP读取它,$_files是空的,$_post也是...

  • 由于Android开发人员建议使用类,我想知道是否有人能为我提供一个很好的例子,说明如何通过POST将位图“文件”(实际上是内存流)发送到Apache HTTP服务器。我对cookie、身份验证或任何复杂的东西都不感兴趣,但我只想有一个可靠的逻辑实现。我在这里看到的所有例子看起来更像是“让我们试试这个,也许它会奏效”。 现在,我有以下代码: 其中showDialog应该只显示一个(如果URL无效?

  • 问题内容: 我希望在用户使用$ .ajax在输入文件中选择文件时异步上传文件。但是接收调用返回索引的PHP未定义。jQuery代码是下一个: 以及调用该调用的php: 谢谢 问题答案: 您无法使用AJAX上传文件,但可以使用,因此不必刷新当前页面。 很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。 不必使用AJAX函数,而是将表单提交到具有事件处理程序的隐藏文件中,以