diff --git a/src/Common.js b/src/Common.js index d1c99d7..98e5a4a 100644 --- a/src/Common.js +++ b/src/Common.js @@ -27,7 +27,11 @@ function escape_regex(string) { function is_video(s) { try { let url = new URL(s); - return url.pathname.endsWith('.mp4') || url.pathname.endsWith('.mov'); + return ( + url.pathname.endsWith('.mp4') || + url.pathname.endsWith('.mov') || + (url.searchParams.get('filetype') || '').startsWith('video/') + ); } catch (e) { return false; } diff --git a/src/UserAction.js b/src/UserAction.js index 1973966..d503331 100644 --- a/src/UserAction.js +++ b/src/UserAction.js @@ -433,8 +433,9 @@ export class PostForm extends Component { super(props); this.state = { text: '', - upload_progress: '', + upload_progress_text: '', is_loading: false, + file_name: '', file_type: '', cw: window.CW_BACKUP || '', allow_search: window.AS_BACKUP || false, @@ -579,7 +580,8 @@ export class PostForm extends Component { console.log(event); let f = event.target.files[0]; if (f) { - this.setState({ is_loading: true, file_type: f.type }); + console.log(f); + this.setState({ is_loading: true, file_name: f.name, file_type: f.type }); // let data = new FormData(); // data.append('file', f); @@ -599,15 +601,19 @@ export class PostForm extends Component { } update_text_after_upload(data) { + const { file_name, file_type } = this.state; let url = (window.config.ipfs_gateway[0] || '(无ipfs网关)').replaceAll( '', data.hash, - ) + data.filename; + ) + + `?filename=${encodeURIComponent(file_name)}&filetype=${encodeURIComponent( + file_type, + )}`; let new_text = this.state.text + '\n' + - (this.state.file_type.startsWith('image/') ? `![](${url})` : url); + (file_type.startsWith('image/') ? `![](${url})` : url); this.setState({ text: new_text }); this.area_ref.current.set(new_text); } @@ -615,7 +621,9 @@ export class PostForm extends Component { upload_progress(event) { console.log(event.loaded, event.total); this.setState({ - upload_progress: `${((event.loaded * 100) / event.total).toFixed(2)}%`, + upload_progress_text: `${((event.loaded * 100) / event.total).toFixed( + 2, + )}%`, }); } @@ -655,8 +663,9 @@ export class PostForm extends Component { poll_options, preview, loading_status, - upload_progress, + upload_progress_text, is_loading, + file_name, } = this.state; return (
@@ -735,8 +744,12 @@ export class PostForm extends Component { onChange={this.on_file_change.bind(this)} disabled={is_loading} /> - {is_loading && !!upload_progress && ( - 上传中: {upload_progress} + {is_loading && ( +

+ + 上传 {file_name} 中: {upload_progress_text} + +

)}