<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù)

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:57:55
        文檔

        Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù)

        Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù):在網(wǎng)站開(kāi)發(fā)的某些情況下我們需要上傳文件到服務(wù)器,在這個(gè)過(guò)程中可能會(huì)對(duì)文件做一定的限制,比如說(shuō)文件格式,文件大小等,在一些情況下我們上傳文件其實(shí)是為了獲取其中的內(nèi)容在前端區(qū)域展示,這個(gè)時(shí)候就不需要將文件上傳到服務(wù)器,完全可以通過(guò)Javascript
        推薦度:
        導(dǎo)讀Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù):在網(wǎng)站開(kāi)發(fā)的某些情況下我們需要上傳文件到服務(wù)器,在這個(gè)過(guò)程中可能會(huì)對(duì)文件做一定的限制,比如說(shuō)文件格式,文件大小等,在一些情況下我們上傳文件其實(shí)是為了獲取其中的內(nèi)容在前端區(qū)域展示,這個(gè)時(shí)候就不需要將文件上傳到服務(wù)器,完全可以通過(guò)Javascript

        在網(wǎng)站開(kāi)發(fā)的某些情況下我們需要上傳文件到服務(wù)器,在這個(gè)過(guò)程中可能會(huì)對(duì)文件做一定的限制,比如說(shuō)文件格式,文件大小等,在一些情況下我們上傳文件其實(shí)是為了獲取其中的內(nèi)容在前端區(qū)域展示,這個(gè)時(shí)候就不需要將文件上傳到服務(wù)器,完全可以通過(guò)Javascript來(lái)獲取上傳文件內(nèi)容然后進(jìn)行展示,既加快了操作速度,也減輕了服務(wù)器的負(fù)載和存儲(chǔ)。接下來(lái)就是一個(gè)實(shí)際操作的過(guò)程:

        首先來(lái)看一下一個(gè)上傳文件對(duì)象的屬性:

        UI設(shè)計(jì)(React+Material-ui)

        ...
        const styles = theme => ({
        formControl: {
         margin: theme.spacing.unit,
         minWidth: 120,
         width: '100%',
         },
         leftIcon: {
         marginRight: theme.spacing.unit,
         }
         })
        ...
         <Grid item xs>
         <FormControl
         className={classes.formControl}
         error={this.state.Err.includes('sqlStr')}
         >
         <TextField
         label="SQL"
         onChange={this.onTextChange('sqlStr')}
         value={this.state.sqlStr}
         placeholder="Add Select SQL here..."
         multiline
         InputLabelProps={{
         shrink: true,
         }}
         fullWidth
         rows={6}
         variant="outlined"
         />
         <FormHelperText>{this.state.sqlStrErr}</FormHelperText>
         <input
         style={{display: 'none'}}
         name="uploadSqlFile"
         id="uploadSqlFile"
         onChange={this.handleUploadSqlFile}
         type="file"
         />
         <label htmlFor="uploadSqlFile" style={{position: 'absolute', right: '0px',bottom: '20px', background:'#f5f0ff'}}>
         <Button color="primary" variant="outlined" component="span">
         <CloudUploadOutlined className={classes.leftIcon} />OR UPLOAD SQL FILE
         </Button>
         </label>
         </FormControl>
         </Grid>
         ...

        效果圖如下:

        操作綁定,分別包含前端文件內(nèi)容讀取和文件上傳

        handleUploadSqlFile = event => {
         let that = this
         const selectedFile = event.target.files[0]
         if(selectedFile.type.includes('text') || selectedFile.type === ''){
         let reader = new FileReader();// !important
         reader.readAsText(selectedFile, "UTF-8");// !important
         reader.onload = function(evt){// !important
         let sqlStr = evt.target.result;// !important
         that.setState({
         Err: that.state.Err.filter(c => c !== 'sqlStr'),
         sqlStr: sqlStr,
         sqlStrErr: '*Avoid duplicated column fields',
         })
         }
         }else {
         let sqlStrErr = 'File format is not supported!'
         if ((selectedFile.size / 1024 / 1024).toFixed(4) >= 2) {//計(jì)算文件大小并且換算成M為單位
         sqlStrErr = 'File size exceeds the limitation (2M)!'
         }
         this.setState({
         Err: [...this.state.Err, 'sqlStr'],
         sqlStrErr: sqlStrErr
         })
         }
        }

        上邊的示例只是單純的前端文件內(nèi)容讀取,并未涉及文件上傳到服務(wù)器,接下來(lái)是:

        import axios from 'axios'
        ...
        handleUploadSqlFile = event => {
         const selectedFile = event.target.files[0]
         if ((selectedFile.size / 1024 / 1024).toFixed(4) >= 10) {
         this.setState({ sqlStrErr: 'File size exceeds the limitation (10M)!' })
         } else {
         const data = new FormData()
         data.append('file', selectedFile, selectedFile.name)
         axios
         .post('/api/utils/upload_file', data, {
         onUploadProgress: ProgressEvent => {
         this.setState({
         loaded: (ProgressEvent.loaded / ProgressEvent.total) * 100 - Math.random() * 16,//此值用來(lái)展示上傳進(jìn)度,好讓用戶知道目前的上傳狀態(tài)。
         })
         },
         })
         .then(res => {
         if (res.data.code === -1) {
         this.setState({ sqlStrErr: res.data.info })
         } else {
         this.setState({
         loaded: 100,
         })
         }
         })
         }
         }
        

        如果看了上邊的代碼示例還搞不定歡迎留言提問(wèn)!

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù)

        Javascript讀取上傳文件內(nèi)容/類型/字節(jié)數(shù):在網(wǎng)站開(kāi)發(fā)的某些情況下我們需要上傳文件到服務(wù)器,在這個(gè)過(guò)程中可能會(huì)對(duì)文件做一定的限制,比如說(shuō)文件格式,文件大小等,在一些情況下我們上傳文件其實(shí)是為了獲取其中的內(nèi)容在前端區(qū)域展示,這個(gè)時(shí)候就不需要將文件上傳到服務(wù)器,完全可以通過(guò)Javascript
        推薦度:
        標(biāo)簽: 內(nèi)容 js 文件大小
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费观看国产网址你懂的| 国产三级免费观看| 久久久亚洲欧洲日产国码农村| 一级日本高清视频免费观看| 亚洲精品线路一在线观看| 一区二区三区在线免费观看视频| 亚洲AV无码乱码精品国产| 成年免费a级毛片| 亚洲国产综合无码一区| 免费污视频在线观看| 亚洲国产女人aaa毛片在线 | 黄色免费在线网址| heyzo亚洲精品日韩| 国产精品hd免费观看| 2021久久精品免费观看| 亚洲中文无码亚洲人成影院| 国产成人在线观看免费网站| 免费无码又爽又黄又刺激网站| 综合亚洲伊人午夜网 | 国产91免费视频| 亚洲欧美日韩一区二区三区| 免费国产美女爽到喷出水来视频| 国产精品福利在线观看免费不卡 | 女人毛片a级大学毛片免费| 在线观看亚洲网站| 亚洲人成77777在线播放网站| 一级毛片**不卡免费播| 在线观看亚洲AV日韩AV| 亚洲中文无韩国r级电影| 伊人久久免费视频| 欧洲亚洲国产精华液| 亚洲人成77777在线播放网站| 无码人妻精品中文字幕免费东京热| 亚洲精品免费网站| 亚洲日韩精品A∨片无码| 黄色永久免费网站| 国产无遮挡色视频免费观看性色 | 国产自国产自愉自愉免费24区| 亚洲精品午夜国产va久久| 美腿丝袜亚洲综合| 性色av无码免费一区二区三区|