nodejsアプリで2MB以上のアップロードファイルを使用しようとしました。
クライアント側FileReader
apiを使用してbase64を保存した後、FormData
を渡します。正規表現にマッチする遅い
私の問題は、以下のようなので、遅いサーバー側のコードで、私はどの部分を見つけることconsole.log
試みを入れて、より大きなサイズのファイルをアップロードする際に、
が 任意の提案がどのようにこれを改善するために...正規表現match
で立ち往生ようですか?ファイルbase64エンコード不要であるmultipart/form-data
要求で送信
https://regex101.com/r/qS2lB2/1
...
console.log(image.data_base64);
// 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvd ...
var matches = image.data_base64.match(/^data:.+\/(.+);base64,(.*)$/);
console.log('done'); // slow
var fileExtension = matches[1];
var base64 = matches[2];
var buffer = new Buffer(base64, 'base64');
...
yield Promise.resolve(filesystem().writeFile(temporaryFilePath, buffer));
代わりに 'split'を使うことができます。例: 'image.data_base64.split(/ [:;、] /)[1]; // mime type'; – Lewis
返信ありがとうございます。上記の正規表現よりも高速に分割されます – user1575921
['^ data:[^ \ /] + \;([^;] +); base64、(。*)$'](https:// regex101。 com/r/cX0dC1/1)は、多くのバックトラックを伴う貪欲なドットマッチングパターンではなく、2つの最初のキャプチャグループでネゲートされた文字クラスを使用します。 –