【问题标题】:How to download base 64 image using cordova filetransfer如何使用科尔多瓦文件传输下载 base 64 图像
【发布时间】:2016-02-20 05:25:26
【问题描述】:

我使用了cordova文件传输协议,并使用了下载功能来下载base-64图像。当我将远程服务器路径设置为“https://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png”时,它会下载,但是当我将 base-64 图像 pah 放在文件路径上时,它不会下载。 我不知道 base-64 转换。请帮忙。

----我的代码在下面----

  function download(){
        var imageData = image.src;
        imageData = imageData.replace('data:image/png;base64,', '');

        var d = new Date();
        var imageName = "sample" + d.getTime() + ".png";

        //var filepath = encodeURI("https://upload.wikimedia.org/wikipedia/commons/4/4a/Logo_2013_Google.png");
        var filepath = encodeURI(imageData);

        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
            fileSystem.root.getFile(imageName, { create: true, exclusive: true }, function (fileEntry) {
                // get the full path to the newly created file on the device
                var localPath = fileEntry.fullPath;

                // massage the path for android devices (not tested)
                if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
                    localPath = localPath.substring(7);
                }

                // download the remote file and save it
                var remoteFile = filepath;
                var fileTransfer = new FileTransfer();
                fileTransfer.download(remoteFile, localPath, function (newFileEntry) {
                    // successful download, continue to the next image
                    console.log('successful download');
                },
                function (error) { // error callback for #download
                    console.log('Error with #download method.', error);
                });
            });
        })

    })
}
}

提前致谢。

【问题讨论】:

    标签: javascript asp.net cordova base64 telerik-appbuilder


    【解决方案1】:

    我找到了自己问题的解决方案。

    首先,我已将 base64 图像转换为文件流,并使用 web 服务在服务器上创建图像并在服务器上上传图像,并获取该服务器路径并使用 cordova 文件传输下载。

    我的代码在下面

    => 将base64图像转换为图像的Web服务代码

    string strImg = imageData.imageData;
       string fullName = "d:\\uploadimages";
       FileStream fs = new FileStream(fullName, FileMode.Create);
       BinaryWriter bw = new BinaryWriter(fs);
    
       byte[] data = Convert.FromBase64String(strImg);
    
       bw.Write(data);
       bw.Close();
    

    => 在手机上下载图片

    function download()
    {
        var filepath = encodeURI("http://www.telerik.com/sfimages/default-source/logos/app_builder.png"),
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
                    fileSystem.root.getFile("sample.jpg", { create: true, exclusive: false }, function (fileEntry) {
    
                        // get the full path to the newly created file on the device
                        var localPath = fileEntry.fullPath;
    
                        // massage the path for android devices (not tested)
                        if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
                            localPath = localPath.substring(7);
                        }
    
                        // download the remote file and save it
                        var remoteFile = filepath;
                        //loadingOverlay.displayLoading("Image will be save on your device.");
    
                        var fileTransfer = new FileTransfer();
                        fileTransfer.download(remoteFile, localPath, function (newFileEntry) {
                            // successful download, continue to the next image
                            var dwnldImagePath = newFileEntry.fullPath;
                            console.log('successful download');
    
                        },
                        function (error) { // error callback for #download
                            console.log('Error with #download method.', error);
    
                        });
                    });
                    function(error) { // error callback for #getFile
                        console.log('Error with #getFile method.', error);
                    });
    
                })
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 2017-08-25
      • 2012-09-21
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多