     proceedChunk: (chunkId, start) ->
       self       = @
       chunk      = @config.file.slice (@config.chunkSize * (chunkId - 1)), (@config.chunkSize * chunkId)
-      fileReader = new FileReader
-
-      fileReader.onloadend = (evt) ->
+
+      if FileReader
+        fileReader = new FileReader
+
+        fileReader.onloadend = (evt) ->
+          self.emitEvent 'sendChunk', [{
+            data: {
+              bin: (fileReader?.result or evt.srcElement?.result or evt.target?.result).split(',')[1]
+              chunkId: chunkId
+              start: start
+            }
+          }]
+          return
+
+        fileReader.onerror = (e) ->
+          self.emitEvent 'end', [(e.target or e.srcElement).error]
+          return
+
+        fileReader.readAsDataURL chunk
+
+      else if FileReaderSync
+        fileReader = new FileReaderSync
+        
         self.emitEvent 'sendChunk', [{
           data: {
-            bin: (fileReader?.result or evt.srcElement?.result or evt.target?.result).split(',')[1]
+            bin: fileReader.readAsDataURL(chunk).split(',')[1]
             chunkId: chunkId
             start: start
           }
         }]
-        return
-
-      fileReader.onerror = (e) ->
-        self.emitEvent 'end', [(e.target or e.srcElement).error]
-        return
-
-      fileReader.readAsDataURL chunk
+      else
+        self.emitEvent 'end', ['FileReader and FileReaderSync is not supported in this Browser!']
       return
 
     upload: -> 

    sendChunk: (evt) ->
      self = @
      opts =
        fileId:     @fileId
        binData:    evt.data.bin
        chunkId:    evt.data.chunkId

      @emitEvent 'data', [evt.data.bin]
      if @pipes.length

        if !!~request._parsedUrl.path.indexOf "#{self.downloadRoute}/#{self.collectionName}/__upload"
          if request.method is 'POST'

            handleError = (error) ->
              console.warn "[FilesCollection] [Upload] [HTTP] Exception:", error
              response.writeHead 500
              response.end JSON.stringify {error}
              return

            body = ''
            request.on 'data', (data) -> bound ->
              body += data
              return

            request.on 'end', -> bound ->
              try
                opts = fileId: request.headers['x-fileid']

                if request.headers['x-eof'] is '1'
                  opts.eof = true
                else
                  opts.binData = new Buffer body, 'base64'
                  opts.chunkId = parseInt request.headers['x-chunkid']

                user            = self._getUser {request, response}
                _continueUpload = self._continueUpload opts.fileId
                unless _continueUpload
