代码之家  ›  专栏  ›  技术社区  ›  TKD21

读取不带node.js的文件(文件系统)

  •  0
  • TKD21  · 技术社区  · 8 年前

    例子:

    function uploadFiles() {
      var fileMetadata = {
        'name': 'test-1.jpg'
      };
      var media = {
        mimeType: 'image/jpeg',
        body: fs.createReadStream('img/test-1.jpg')
      };
      gapi.client.drive.files.create({
        resource: fileMetadata,
        media: media,
        fields: 'id'
      }, function(err, file) {
        if (err) {
          // Handle error
          console.error(err);
        } else {
          console.log('File Id: ', file.id);
        }
      });
    }
    

    我的问题是 fs.createReadStream()

    因为Node.js是一个服务器端工具 require() 在浏览器中不存在,在没有使用NoDE.js的情况下,如何在JavaScript中从文件中创建字节流?

    编辑: - gapi.client.drive.files.create() 问题

     function readFile(evt) {
                var fData = [];
                var f = evt.target.files[0];
                if (f) {
                    var r = new FileReader();
                    r.readAsText(f);
                    fData.unshift(f.name,f.type);
                   var myInt = setInterval(function() {
                        if (r.readyState == 2) {
                            fData.push(r.result);
                             uploadFiles(fData);
                            clearInterval(myInt);
                        }
                    }, 50);
                } else {
                    alert("Failed to load file");
                }
    
            }
    
            function uploadFiles(dataArray) {
                var fileMetadata = {
                    'name': dataArray[0]
                };
                var media = {
                    mimeType: dataArray[1],
                    body: dataArray[2]
                };
                gapi.client.drive.files.create({
                    resource: fileMetadata,
                    media: media,
                    fields: 'id'
                }, function(err, file) {
                    console.log("Reached!");
                    if (err) {
                        console.error(err);
                    } else {
                        console.log('File Id: ', file.id);
                    }
                });
            }
    
            document.getElementById('upFile').addEventListener('change', readFile, false);
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Arif Rathod    8 年前

    使用客户端的filereader读取文件数据。使用此演示代码并尝试。

    <script type="text/javascript">
                function readSingleFile(evt) {
                    var f = evt.target.files[0];
                    if (f) {
                        var r = new FileReader();
                        r.onload = function(e) { 
                            var contents = e.target.result;
                        }
                        r.readAsText(f);
                    } else {
                        alert("Failed to load file");
                    }
                }
                document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
            </script>