comparison src/chat.js @ 63:afd5ab5b02a2

file upload
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 05 Mar 2025 18:43:06 -0700
parents d4d154b404f8
children 6cfef9850520
comparison
equal deleted inserted replaced
62:ad9772fc588a 63:afd5ab5b02a2
3 let title = document.title; 3 let title = document.title;
4 let currentChatId = null; 4 let currentChatId = null;
5 let eventSource; 5 let eventSource;
6 let lastUpdate; 6 let lastUpdate;
7 let userId; 7 let userId;
8 let filebinUrl;
8 9
9 function evalEvent(event) { 10 function evalEvent(event) {
10 // console.log(event); 11 // console.log(event);
11 eval(event.data); 12 eval(event.data);
12 } 13 }
286 let email = document.querySelector('dialog[invite] span[email]').textContent; 287 let email = document.querySelector('dialog[invite] span[email]').textContent;
287 closeModal(el); 288 closeModal(el);
288 location = `chat?with=${email}`; 289 location = `chat?with=${email}`;
289 ajax(`save_post.js?post=${currentPostId}`,`content=${encodeURIComponent(text)}`); 290 ajax(`save_post.js?post=${currentPostId}`,`content=${encodeURIComponent(text)}`);
290 } 291 }
292
293 function uploadFile() {
294 document.querySelector('input[type="file"]').click();
295 }
296
297 function addFileUrl(url) {
298 let textarea = document.querySelector('div[input] textarea');
299 let text = textarea.value;
300 if( /\S$/.test(text) )
301 text += ' ';
302 text += url;
303 textarea.value = text;
304 }
305
306 function uploadToFilebin(fileName,fileContent) {
307 //console.log(fileContent.byteLength);
308 let request = new XMLHttpRequest();
309 let url = filebinUrl + fileName;
310 request.open( 'POST', url );
311 request.onload = function() {
312 if( request.status !== 201 ) {
313 let err = 'upload failed: ' + request.status;
314 if( request.responseText ) {
315 err += '\n' + request.responseText;
316 }
317 console.log(err);
318 ajax( '/error_log.js', 'err='+encodeURIComponent(err) );
319 return;
320 }
321 addFileUrl(url);
322 };
323 request.send(fileContent);
324 }
325
326 function loadedFile(input) {
327 let file = input.files[0];
328 input.value = null;
329 console.log(file);
330 let reader = new FileReader();
331 reader.onload = function() {
332 uploadToFilebin(file.name,reader.result);
333 };
334 reader.readAsArrayBuffer(file);
335 }