function upload_computed_data(data, chunksize) if nargin < 2 chunksize = 2500; end nchunks = ceil(height(data) / chunksize); firstchunk = true; for n = 1:nchunks from = (n-1) * chunksize + 1; to = min(n * chunksize, height(data)); chunk = data(from:to, :); csvname = [tempname() '.csv']; writetable(chunk, csvname); gzname = gzip(csvname); delete(csvname); import matlab.net.http.* import matlab.net.http.io.* fp = FileProvider(gzname); if firstchunk % UGLY INFLEXIBLE HACK userdata = data.Properties.UserData; userdata{1,3}.duration = milliseconds(userdata{1,3}.duration); mfp = MultipartFormProvider('file', fp, 'userdata', StringProvider(jsonencode(userdata))); else mfp = MultipartFormProvider('file', fp); end req = RequestMessage('post', HeaderField('Auth', 'Qnb7jfeGZM'), mfp); url = 'https://driver-observer.thi.de/upload_computed_data.php'; if firstchunk url = strcat(url,'?clear=1'); firstchunk = false; end res = req.send(url); delete(gzname{1}); if res.StatusCode ~= StatusCode.OK throw(MException('upload_computed_data:http_error', ... 'HTTP Error %s (%s); Body: %s', string(res.StatusCode), ... string(getReasonPhrase(res.StatusCode)), res.Body.Data)); end end end