Javascript FileReader有多个文件,如何迭代文件名?

时间:2015-12-03 10:06:19

标签: javascript php image

我正在尝试编写多上传图像逻辑。这是我使用的代码:

function readURL(input,index) {

                    for (var z = 0; z < input.files.length; z++) {

                        var FileZ=input.files[z];


                        if (input.files && input.files[z]) {
                            var reader = new FileReader();  
                            reader.onload = function (e) {
                                var i = new Image();
                                i.src=e.target.result;
                                i.onload = function(){
                                    //ajax crop to 500x350
                                    var arrExt = FileZ.name.split('.');
                                    if(i.width>=500 && i.height>=350) {
                                        $.ajax({
                                            url: 'ajax/cropImage.php',
                                            type: 'POST',
                                            data: 'base64='+e.target.result+"&ext="+arrExt[(arrExt.length-1)],
                                            success: function(data) {

                                                //here i insert the image in html.
                                            }
                                        });

                                    } else {
                                        alert("Image too big");
                                    }
                                };
                            }                   
                            reader.readAsDataURL(input.files[z]);
                        }
                    }

                }

此代码工作正常,我可以上传并查看ajaxCrop.php后生成的图像。当我尝试上传具有不同扩展名的图像时出现问题。如果我尝试上传一个jpg和一个png,则只会裁剪此照片中的一张。问题在于

var arrExt = FileZ.name.split('.');

此处文件名始终相同,z = 0 name =&#39; image.jpg&#39;并且在z = 1 name =&#39; image.jpg&#39; (名称应为&#39; image.png&#39;)。因此,当我尝试裁剪“假”错误时,我收到了错误消息。 jpg ...我怎样才能在索引中获得正确的名称?

0 个答案:

没有答案