Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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
Javascript Google Drive API浏览器上载PDF空_Javascript_Google Drive Api - Fatal编程技术网

Javascript Google Drive API浏览器上载PDF空

Javascript Google Drive API浏览器上载PDF空,javascript,google-drive-api,Javascript,Google Drive Api,我可以上传pdf文件,但它将作为空白/空文件上传。我不知道我错过了什么 当我收到该文件时,我也尝试不转换为Base64,但仍然是一样的 using (var sr = new StreamReader(file.OpenReadStream(), System.Text.Encoding.UTF8)) { _fContent = await sr.ReadToEndAsync(); var plai

我可以上传pdf文件,但它将作为空白/空文件上传。我不知道我错过了什么

当我收到该文件时,我也尝试不转换为
Base64
,但仍然是一样的

     using (var sr = new StreamReader(file.OpenReadStream(), System.Text.Encoding.UTF8))
            {
                _fContent = await sr.ReadToEndAsync();
                var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(_fContent);
                _fContent = System.Convert.ToBase64String(plainTextBytes);
            }          
前端我创建请求

      endpoint = 'https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&fields=id';
      method = 'POST';

      _metadata = {
          'name': fileName,
          'mimeType': 'application/pdf',
          'parents': [zzzz]
      };

    //blob is the data we receive in backend from _fContent variable
    var file = new Blob([blob], { type: 'application/pdf' });

    var accessToken = gapi.auth.getToken().access_token;
    var form = new FormData();
    form.append('metadata', new Blob([JSON.stringify(_metadata)], { type: 'application/json' }));
    form.append('file', file);

    var xhr = new XMLHttpRequest();
    xhr.open(method, endpoint);
    xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
    xhr.responseType = 'json';
    xhr.onload = () => {

        GapiUploadCallback(xhr.response, responseReturn);

    };
    xhr.send(form);
这是我在GoogleDriveAPI中收到的,一个空/空的PDF文件。注意:文件大小为 1 MB(1424457字节)


使用javascript
FileReader
是我能解决这个问题的唯一选择。PDF现在在Google Drive上呈现正常


 var fileUpload = $("#fileUpload").get(0);
    var files = fileUpload.files;

    var reader = new FileReader();
    reader.onload = function () {
        var dataURL = reader.result;

        var file = new Blob([dataURL], { type: 'application/pdf' });

        var accessToken = gapi.auth.getToken().access_token; // Here gapi is used for retrieving the access token.
        var form = new FormData();
        form.append('metadata', new Blob([JSON.stringify(_metadata)], { type: 'application/json' }));
        form.append('file', file);

        var xhr = new XMLHttpRequest();
        xhr.open(method, endpoint);
        xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
        xhr.responseType = 'json';
        xhr.onload = () => {

            GapiUploadCallback(xhr.response, responseReturn);

        };
        xhr.send(form);
    };
    reader.readAsArrayBuffer(files[0]);


我认为你的剧本行得通。例如,确认
var file=newblob([blob],{type:'application/pdf'})的
blob
如何又来了?或者当
blob
下载PDF文件时,您会得到什么结果?如果这没有导致直接解决,我道歉。这是blob结果。。。结果要长得多。```%PDF-1.3%���� 10 0 obj]/长度145920>>流x���eT\��6.�%����ܭp�N��Sx�܂������3.�3f�����噢��ϧ{��9g�}�}��s���$H�Q���P�Q���0p(�P��Q�H�(X>���|ff�����电子束��������!�G��b$�����N`���Q�酸碱度��H������7.��� >................ ```谢谢你的回复。我很高兴你的问题得到了解决。