Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用javascript将Base64图像上载到Google drive_Jquery_Ajax_Image_Upload_Base64 - Fatal编程技术网

Jquery 使用javascript将Base64图像上载到Google drive

Jquery 使用javascript将Base64图像上载到Google drive,jquery,ajax,image,upload,base64,Jquery,Ajax,Image,Upload,Base64,我正在尝试使用jQueryAjax POST请求将Base64编码的图像上传到GoogleDrive。它在谷歌硬盘上上传了数据,但在下载文件后没有在谷歌硬盘浏览器上显示图像 请求调用使用JSON响应获取成功消息 以下是代码片段:[imageData是Base64编码的字符串] $.ajax({ type: 'POST', url: 'https://www.googleapis.com/upload/drive/v2/files?uploadType=media'

我正在尝试使用jQueryAjax POST请求将Base64编码的图像上传到GoogleDrive。它在谷歌硬盘上上传了数据,但在下载文件后没有在谷歌硬盘浏览器上显示图像

请求调用使用JSON响应获取成功消息

以下是代码片段:[imageData是Base64编码的字符串]

$.ajax({
        type: 'POST',
        url: 'https://www.googleapis.com/upload/drive/v2/files?uploadType=media',
        headers: {
          'Authorization': 'Bearer ' + access_token,
          'Content-Type': 'image/jpeg',
          'Content-Length': imageData.length, // imageData is Base64 encoded string
        },
        data: imageData // imageData is Base64 encoded string
       }).done(function (result, textStatus, jqXHR) {
                console.log('success : ' + textStatus);
                console.log(JSON.stringify(result));

            }).fail(function (jqXHR, textStatus, errorThrown) {
                console.log('fail : ' + textStatus + ' desc : ' + SON.stringify(jqXHR));
            });
提前谢谢

  • 维什鲁特

这会上载数据,但不会上载在驱动器中显示图片所需的数据。通过上传base64格式,您已经将一个大字符串上传到Google Drive,而不是二进制图像文件。base64编码包含与原始文件不同的字节,并且在驱动器中生成的文件比关联的二进制文件大约50%

如果下载base64文件,并将其转换为图像数据url以显示它,它将显示良好。但是,您将无法在google drive web UI中看到它,因为它显然按原样存储base64数据,而不是将其转换为二进制文件。(截至2017年11月)


gapi
无法很好地处理blob上传,因此,或许可以尝试使用或

@Vishrut-Shah解决此问题或使其正常工作?我也有同样的问题。谢谢。来自用户:请尝试数据:
imageData。替换(/^data:.*;base64,/,“”)
。我不能确认这是一个真实的答案,但在不同类型的项目中有一些类似的问题,这就解决了它。答案总比没有好。答案可能重复