带jquery的Solr index.csv文件
我为此尝试了一些方法,但不知怎的我做不到。我有一个选择.csv文件的openfile对话框,还有一个开始索引数据的按钮。我的HTML代码如下带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">
<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: </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: </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,我点击了更新按钮,但什么也没发生。我添加了一条错误消息,但单击“更新”按钮时没有任何成功或错误消息。我尝试了许多方法来解决这个问题,但我还不能做到。