- 问题列表
- 我关注的
- 我的博问
- 博问标签
就像这样
选择一个文本文件,然后打开,文件里的内容
页面组件用的是element-ui的东西
它方法里的api的file参数就是文件相关的信息了
你指的是使用element-ui的上传组件?我这个只是需要读取文件内容,不用上传
@echo_lovely: 是的,你就在before-upload方法里打印下file,存下它的地址,这就获取到了;然后再return 个false,就不会走后续流程了
@秃秃小前端: 好的,我试试!
<el-button type="primary">上传<i class="el-icon-upload el-icon--right"></i></el-button>
<el-upload
class="upload-demo"
action=" https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<script>
export default {
data() {
return {
fileList: [{name: 'food.jpeg', url: ' https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}, {name: 'food2.jpeg', url: ' https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}]
};
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件
);
},
beforeRemove(file, fileList) {
return this.$confirm(确定移除 ${ file.name }?
);
}
}
}
</script>
@Biuget-Golang: element-ui的代码全拿过来了
@echo_lovely: 那不知道前端有没有read函数咯。后端是可以读取的。
@Biuget-Golang: 需求是,前端读取文本文件(csv格式),然后将文本文件处理,然后用于前端界面显示
@Biuget-Golang: 不用上传文件给后端
@echo_lovely: 理解不到我的意思,这种建议先查百度,上面一大把。
html5的话,可以使用file system access api。chrome 86以上支持。
官方给的Demo: https://googlechromelabs.github.io/text-editor/,参考 里面打开文件的功能。
MDN中,关于这个api的文档 : https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
async function returnPathDirectories(directoryHandle) {
// Get a file handle by showing a file picker:
const [handle] = await self.showOpenFilePicker();
if (!handle) {
// User cancelled, or otherwise failed to open a file.
return;
}
// Check if handle exists inside directory our directory handle
const relativePaths = await directoryHandle.resolve(handle);
if (relativePaths === null) {
// Not inside directory handle
} else {
// relativePaths is an array of names, giving the relative path
for (const name of relativePaths) {
// log each entry
console.log(name);
}
}
}
上面的代码是样例。
我试试
他要https才可以用
我试了,但是能拿到文件名,拿不到文件内容
html 的 input file不就可以??
但是那个东西,和页面不搭啊,而且后面逻辑处理不容易做
@echo_lovely: 这个跟vue的选择文件是一样的效果,因为vue选择文件,用的实际就是 html 的 input file
@人间春风意: 能给个例子不能?
@echo_lovely: 除非你把文件都读取出来,自己用一个div重新填数据,这样,很麻烦的
@echo_lovely: https://www.cnblogs.com/uoky/articles/16122424.html 这个可以吗?
都是获取文件的,没有涉及到选择文件的效果,一个原生的,一个vue的
深圳坪山网站建设公司六安网络推广渠道网站优化中卫网站优化专业搜索引擎网站优化案例网站产品页可以怎么优化天津省网站优化软件潮州网站优化推广公司汕头企业网站关键词优化多少钱图片网站优化方法河北卫浴行业网站优化推广优点前端网站优化图片嘉峪关网站优化推广哪家公司好新郑网站优化多少钱网站优化标签编辑器吴中网站优化多少钱朝城网站优化公司网站推广优化首选谷歌11浅谈网站优化中百度快照的重要性常州seo网站优化龙华网站优化哪家好网站建设和优化哪个公司好亳州公司网站优化技巧网站运行速度优化西秀区分类网站优化优化对网站网站排名优化seo化州网站优化费用阳泉网站优化宁夏网站关键词优化怎么弄网站seo优化排名云南网站seo优化哪家技术好香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤