jquery ajax 读取多个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery ajax 读取多个文件相关的知识,希望对你有一定的参考价值。

$('input').click(function()
function getstr(fn)
var str="";
for(i=0;i<=4;i++)
$.ajax(
type:"GET",
url:"test"+i+".txt",
success: function(res)
str+=res;

);

fn(str);
alert(str+"---");

getstr(function(s)
alert(s);
);

);
我有四个txt文件,想用循环和ajax 吧内容全部读取处理,可以出现了问题。

第一个alert(str+"---");能弹出来四个txt文件的内容合成的字符串,下面的alert(s);弹不出来,我实在找不到哪里错了,网上也没有相关的介绍。求大仙帮帮找找啊
$('input').click(function()
function getstr()
var str="";
for(i=0;i<=4;i++)
$.ajax(
type:"GET",
url:"test"+i+".txt",
success: function(res)
str+=res;

);

alert(str+"---");
return str;

alert(getstr());
);
修改了一下,alert(getstr());还是弹不出来

jQuery ajax读取json文件的示例:

json文件:

[
"name":"哈哈··","email":"邮箱01","gender":"男","hobby":["上网","打球"],
"name":"呵呵··","email":"邮箱02","gender":"男","hobby":["网购","打球"]
]

js代码:

<script type="text/javascript" src="js/jquery.1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function() 
    $.ajax(
//请求方式为get
type:"GET",
//json文件位置
url:"user.json",
//返回数据格式为json
dataType: "json",
//请求成功完成后要执行的方法
success: function(data)
//使用$.each方法遍历返回的数据date,插入到id为#result中
$.each(data,function(i,item)
var content=item.name+","+item.email+","+item.gender+
","+item.hobby[0]+","+item.hobby[1]+"</br>";
$("#result").append(content);
)

)
);
</script>
参考技术A

    ajax 方法不是这样用的

    多个文件发送不是这样循环的

    你觉得是一次发送多个文件,然后后台处理好,还是一个一个发送去处理好?!

    $('input').click(function()

        var arr = [];

        for(var i = 0; i <= 4; i++) 

            arr.push("test" + i + ".txt");

        
        $.ajax(

                  url: "abc.do";
                  type: "GET",
                  data: arr,
                  success: function (res) 
                     str += res;
                                
        );
    );

    都回答到这个份上了,希望提问者可以明白了,如果不明白请自行百度

追问

我忘了说,我用的是php,不是java,虽然php可以处理这种同时读取多个文件,但是有局限性,所以,我想用jQuery来实现,我看明白你的代码了,先把文件放到一个数组中,然后用java读取数组中的文件内容,可是,php没有读取多个文件的方法啊

还有,你的str,都没有声明,哪里来的?

追答

我忘了告诉你,javascript不是php转有的,php有自己的action,java也有,大同小异,你看我写了do,就以为???

追问

恩,是的,我只用过java的action,原来php也有啊,我再摸索摸索。

本回答被提问者采纳
参考技术B 4个文件的话 循环式这样的
for(i=0;i<4;i++)

你加了个等于4 就循环了5个文件追问

恩,是的,应该改为for(i=1;i<=4;i++),因为我的文件时text1.txt开始的

如何使用 jquery 和 Ajax 将多个文件字段保存到 django

【中文标题】如何使用 jquery 和 Ajax 将多个文件字段保存到 django【英文标题】:How to save multiple file fields to django using jquery and Ajax 【发布时间】:2016-10-29 12:02:01 【问题描述】:

我正在尝试将多个文件字段保存到服务器。字段字段是动态的,我们可以使用添加按钮上传任意数量的文件。我不想使用表单提交或 dropzone。任何人都可以请帮助我如何做到这一点。

    <div class="row" id="point_of_interest">  
         <div class="col-lg-4 ">            
             <label>Point of Interest Name</label>
             <input type="text" name="point_of_interest_name"  class="form-control interest_name" >
             <label class="error"  style="color:red; display:none;"></label>
         </div>
        <div class="col-lg-4 ">            
             <label>Upload Image</label>
             <input  type="file" accept="image/*" name="point_of_interest_image[]" class="poi_img form-control" placeholder="Upload image" >
        </div>
        <div class="col-lg-4 ">            
            <div class="form-group">
                 <a class="fa fa-plus-circle fa-lg add_point_of_interest"  style="margin-top:33px;" ></a> 
            </div>
        </div>
    </div>

以上 HTML 用于动态添加表单字段

    $('#point_of_interest').find('input[type=file]').each(function (index,val) 

        var city_image = $(this).prop(files)[0]; 
    console.log(city_image); 
    point_of_interest_image_list.push(city_image);

    );

上面的jquery代码是用来收集多个对象的

    @csrf_exempt
    def save_city_data(request):
    try:
       print '=====request========',request.POST
       print      '=====request========',request.FILES.getlist('point_of_interest_image_list')

使用上面的代码我得到所有文件的列表

【问题讨论】:

【参考方案1】:

您可以使用 Jquery 文件上传插件

【讨论】:

以上是关于jquery ajax 读取多个文件的主要内容,如果未能解决你的问题,请参考以下文章

jQuery ajax读取本地json文件

jquery+ajax怎样读取json文件的内容?

如何使用 PHP、jQuery 和 AJAX 上传多个文件

如何使用 AJAX/JQuery 调用多个 PHP 脚本?

如何使用 jquery 和 Ajax 将多个文件字段保存到 django

jquery ajax post文件,多个文件和文本输入