带jquery的Solr index.csv文件

带jquery的Solr index.csv文件,jquery,solr,Jquery,Solr,我为此尝试了一些方法,但不知怎的我做不到。我有一个选择.csv文件的openfile对话框,还有一个开始索引数据的按钮。我的HTML代码如下 <body> <div style="padding-left: 5%; padding-right: 5%; padding-top: 25px"> </div> <div id="wrapper" style="width: 100%; text-align: left">

我为此尝试了一些方法,但不知怎的我做不到。我有一个选择.csv文件的openfile对话框,还有一个开始索引数据的按钮。我的HTML代码如下

    <body>
    <div style="padding-left: 5%; padding-right: 5%; padding-top: 25px">
</div>
        <div id="wrapper" style="width: 100%; text-align: left">
            <img border="0" src="images//TEC.jpg" alt="TEC" width="170"
                height="75">
        <font size="6"> Electronic Archiving</font>
        </div>
        <br>
        <br>
        <br>
        <form id="indexForm" method="post" enctype="multipart/form-data">
        <div id="update" style="width:100%; text-align:left; margin-left:2.5em">
        <label for="updateFile">File:&nbsp;</label><input type="file" id="updateFile" style="position:fixed" accept=".csv">
        <br>
        <br>
        <div id="buton" style="margin-left:5em"><input type="button" value="UPDATE FILE" class="btn btn-sm" id="indexCSV"></div>
        </div>
        </form>
</body>
    <script>
$(document).ready(function(){
    $("#indexCSV").click(function(){
        var file=document.getElementById("updateFile").files[0];
        var formData=new FormData();
        formData.append('file',file);
        $.ajax({
            type:'POST',
            url:'http://localhost:8983/archiveCore/update?commit=true',
            dataType:'csv'
            contentType:'text/csv',
            processData:false\
            data:'formData',
            success:function(){
                window.alert("Data uploaded : ")
            }
        });
    });
});
</script>

电子存档



文件:

我的jquery是这样的

    <body>
    <div style="padding-left: 5%; padding-right: 5%; padding-top: 25px">
</div>
        <div id="wrapper" style="width: 100%; text-align: left">
            <img border="0" src="images//TEC.jpg" alt="TEC" width="170"
                height="75">
        <font size="6"> Electronic Archiving</font>
        </div>
        <br>
        <br>
        <br>
        <form id="indexForm" method="post" enctype="multipart/form-data">
        <div id="update" style="width:100%; text-align:left; margin-left:2.5em">
        <label for="updateFile">File:&nbsp;</label><input type="file" id="updateFile" style="position:fixed" accept=".csv">
        <br>
        <br>
        <div id="buton" style="margin-left:5em"><input type="button" value="UPDATE FILE" class="btn btn-sm" id="indexCSV"></div>
        </div>
        </form>
</body>
    <script>
$(document).ready(function(){
    $("#indexCSV").click(function(){
        var file=document.getElementById("updateFile").files[0];
        var formData=new FormData();
        formData.append('file',file);
        $.ajax({
            type:'POST',
            url:'http://localhost:8983/archiveCore/update?commit=true',
            dataType:'csv'
            contentType:'text/csv',
            processData:false\
            data:'formData',
            success:function(){
                window.alert("Data uploaded : ")
            }
        });
    });
});
</script>

$(文档).ready(函数(){
$(“#indexCSV”)。单击(函数(){
var file=document.getElementById(“updateFile”).files[0];
var formData=new formData();
formData.append('file',file);
$.ajax({
类型:'POST',
网址:'http://localhost:8983/archiveCore/update?commit=true',
数据类型:'csv'
contentType:'text/csv',
processData:false\
数据:'formData',
成功:函数(){
window.alert(“上传的数据:”)
}
});
});
});

当我点击按钮时,没有任何动作。我不明白为什么

你的逻辑有几个问题。首先,您需要传递
formData
作为变量的引用,而不是字符串。在
processData
之后还有一个语法错误,它应该是
而不是
/
。在这种情况下,该属性的值也应该是
false

最后,
dataType
应该从
text/csv
更改为您希望服务器返回的任何内容,最常见的是JSON或HTML。您可以完全省略这个属性,让jQuery自己确定响应格式

以下是更新版本:

$("#indexCSV").click(function() {
  var file = $("updateFile")[0].files[0];
  var formData = new FormData();
  formData.append('file', file);

  $.ajax({
    type: 'POST',
    url: 'http://localhost:8983/archiveCore/update?commit=true',
    contentType: false,
    processData: false,
    data: formData,
    success: function() {
      window.alert("Data uploaded : ")
    }
  });
});

控制台中有错误吗?是否触发了
updateFile
函数,但没有发送ajax帖子?你看到网络选项卡中的帖子了吗?我的控制台中没有错误。是的,我猜ajax帖子没有发送文件。你已经用完全相同的代码问了同样的问题,至少在4个不同的场合,每次我都把它作为副本关闭。努力阅读副本;您需要将二进制文件数据放入
FormData
对象中,并将其发送到AJAX请求中@Rorymcrossanten请展示您在尝试的逻辑中所做的更改。你问的每一个问题都显示了相同的代码,没有修改来解决这个问题。我按照你的方式做了,但不幸的是没有修改。我的示例Solr cURL类似-->cURL'--data binary@'FileDirectory'-H'内容类型:application/csv'您能提供比“未更改”更多的信息吗。请求是否实际发送?服务器的响应是什么?我尽我最大的努力来帮助你,但是你真的不容易。我理解你,伙计,我的英语词汇很差,但我会尽力向你解释我想要什么,问题是什么。所以我选择了我的.csv文件来索引Solr core,我点击了更新按钮,但什么也没发生。我添加了一条错误消息,但单击“更新”按钮时没有任何成功或错误消息。我尝试了许多方法来解决这个问题,但我还不能做到。