百度的UEditor的多图上传功能对有大量图片同时上传的需求者来说,无疑是非常方便的,但在使用过程中发现两个BUG。
1.上传成功插入图片时,偶尔会乱顺,没有按照选择图片时的顺序插入。
2.插入图片后,图片偶有丢失情况,视图中,丢失的图片位置则显示下一张图片。
BUG解决如下:
1的原因,是上传成功后,则加入插入列表队列,但图片大小不同,由于上传线程是并行的,所以,靠后的图片如果很小,上传就很快,以至先加入队例。所以,dialogs/image/image.js文件第721行代码作如下更改:
//_this.imageList.push(json);
_this.imageList[$file.index()] = json; // 按选择好的文件列表顺序存储
2.的原因是图片命名格式化时,随机数出现重复,导致已上传的图片被下一个图片覆盖掉。
App_Code/PathFormater.cs文件第35行作如下更改:
//var rand = new Random();
var rand = new Random(GetRandomSeed());
并加入方法
private static int GetRandomSeed()
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}
以上修改需要清除浏览器缓存才可以生效。