将图像文件保存在persist方法上

时间:2018-08-01 11:15:11

标签: acumatica

我一直试图保存从屏幕截图复制并粘贴到PXImage控件中的图像文件。现在,当我保存记录时,我也尝试保存图像,并将文件名和其他DAC字段一起保存在数据库记录中。

下面是将屏幕快照图像设置到PXImage控件中的js代码。

document.onpaste = function (event) {
    var items = (event.clipboardData || event.originalEvent.clipboardData).items;
    console.log(JSON.stringify(items)); // will give you the mime types
    if (items.length > 0) {
        var imgControl = document.querySelectorAll('.note-m img');
        //get the last screenshot
        var item = items[items.length - 1];
        if (item.kind === 'file') {
            var blob = item.getAsFile();
            var reader = new FileReader();
            reader.onload = function (event) {
                var result = event.target.result;
                imgControl[0].src = result;
                px_alls["ds"].executeCallback("saveScreenshotImage","test");
            };
            reader.readAsDataURL(blob);
        }
    }
}

这是我在屏幕截图上按(Ctrl + V)时的外观。 enter image description here

现在,我要保存此图像并生成一个文件名,可以将其与记录一起保存在名为“ ScreenShotImage”的DAC字段中。

我想创建一个动作并通过js调用它,但是我无法成功将图像作为命令参数传递。

图中的操作方法:

public PXAction<Ticket> saveScreenshotImage;
        [PXButton]
        public virtual IEnumerable SaveScreenshotImage(PXAdapter adapter)
        {
            throw new PXException("test...");
        }

通过JS调用

px_alls["ds"].executeCallback("saveScreenshotImage");

有什么办法可以通过Persist方法获取该特定文件吗?

public override void Persist()
        {

            base.Persist();
        }

谢谢。

0 个答案:

没有答案