我正在尝试编写多上传图像逻辑。这是我使用的代码:
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 ...我怎样才能在索引中获得正确的名称?