<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
        主站蜘蛛池模板: 亚洲第一综合天堂另类专| 亚洲国产精品白丝在线观看| 真人无码作爱免费视频| 污视频网站免费在线观看| 秋霞人成在线观看免费视频| 亚洲国产专区一区| 亚洲伊人久久大香线蕉影院| 7m凹凸精品分类大全免费| 亚洲精品成人片在线观看| 无码AV动漫精品一区二区免费| 国产大片线上免费看| 一级黄色免费毛片| 中文字幕无码精品亚洲资源网| 久久国产一片免费观看| 日本免费中文字幕在线看| 亚洲国产精品日韩av不卡在线| 成人爱做日本视频免费| 一级人做人爰a全过程免费视频| 亚洲午夜久久久影院| 亚欧免费一级毛片| 亚洲综合亚洲综合网成人| 亚洲精品无码少妇30P| 在线观看免费国产视频| 久久国产精品免费| 久久久久亚洲av无码专区导航| 永久在线观看www免费视频| 亚洲欧洲自拍拍偷精品 美利坚| 久久久久久国产a免费观看不卡 | 91成年人免费视频| 亚洲AV成人精品一区二区三区| 亚洲国产综合人成综合网站| 免费观看久久精彩视频 | 亚洲高清乱码午夜电影网| 亚洲色欲久久久久综合网| 少妇太爽了在线观看免费视频| 国产亚洲国产bv网站在线 | 久久久久亚洲AV无码专区体验| 四虎成人精品一区二区免费网站 | 亚洲毛片基地4455ww| 亚洲国产小视频精品久久久三级| 十八禁视频在线观看免费无码无遮挡骂过|