为了账号安全,请及时绑定邮箱和手机立即绑定

在 JavaScript 中按文件名称拖放排序

在 JavaScript 中按文件名称拖放排序

湖上湖 2023-11-12 14:57:06
我想按文件名称对文件进行排序,然后处理下一个代码。以下是我上传的文件名: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++;

]);


查看完整回答
反对 回复 2023-11-12
?
牛魔王的故事

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);


查看完整回答
反对 回复 2023-11-12
  • 2 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信