我想按文件名称对文件进行排序,然后处理下一个代码。以下是我上传的文件名:DSC08703-3.jpg、DSC08701-2.jpg、DSC08704-4.jpg我在下面也提到了一个技巧。$('#file').change(function () { var pic1=""; var count=1; var Allowedimages=0; var uploadedcount=0; filesup = event.target.files; if (this.files.length > 0) { haveToUpload=this.files.length; $.each(filenames, function (i, v) { var reader = new FileReader(); remainToUpload = parseInt(haveToUpload)-parseInt(i); var proceedImg = remainToUpload; reader.onload = function (e) { var img = new Image(); img.src = e.target.result; img.onload = function () { var canvas = document.createElement("canvas"); var value = 100; var newsize=0; var ctx = canvas.getContext("2d"); ctx.clearRect(0, 0, canvas.width, canvas.height); canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0, img.width, img.height); var pic1=canvas.toDataURL("image/jpeg",0.80); var x=1; while (x <= 60) { var filebd=$('#fileBD'+x).val(); if(filebd==NoImageSrc) { break; } x++; }我尝试了以下解决方案但不起作用。
2 回答
青春有我
TA贡献1784条经验 获得超8个赞
从图像名称中获取数字并将该数字用作框值。
$.each(this.files, function (i, v) {
var tno = 0;
var parts = v.name.split("-");
var result = parts[parts.length - 1];
var tno = result.toString().split(".")[0];
var x=1;//parseInt(count)+parseInt(i)+parseInt(1);
var xx = 1;
if(tno>0) x = tno;
else x = xx;
x++;
xx++;
]);
牛魔王的故事
TA贡献1830条经验 获得超3个赞
首先,仔细检查这this.files
不是文件接口数组(https://developer.mozilla.org/en-US/docs/Web/API/File)
如果是这种情况,您必须像这样映射文件名:
var filenames = this.files.map(x => x.name);
至于对字符串数组进行排序:
var ascending = (a, b) => a > b ? 1 : -1; filenames.sort(ascending); // console.log(filenames);
添加回答
举报
0/150
提交
取消