使用 Firebase 和 Vue 进行文件上传
Firebase 是一个简单的后端来存储上传的文件,它与 Vue 配合得很好。
你可以 npm install firebase firebase-storage
或使用 CDN。
你需要 firebase-storage
包来存储文件。
如果要禁用身份验证,则需要更改存储规则,如下所示:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
To:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != true;
}
}
}
完成后,您可以修改 本文 如下所示:
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.6.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.3/firebase-storage.js"></script>
<script>
const firebaseConfig = {
apiKey: "",
authDomain: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: "",
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<div></div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
<script>
const app = new Vue({
data: () => ({ File: null, value: null, preview: null, isPic: false }),
template: `
<div style="border-style:solid">
<input type="file" @change="getFile()"/>
<button @click="submitFile">Upload!</button>
<div v-if="!isPic">
{{preview}}
</div>
<div v-else>
<img :src="preview" style="width:75%"/>
</div>
</div>
`,
methods: {
getFile() {
this.File = event.target.files[0];
this.preview = null;
this.isPic = false;
if (
this.File.name.includes(".png") ||
this.File.name.includes(".jpg")
) {
this.isPic = true;
}
},
submitFile() {
const storage = firebase.storage().ref().child(`${this.File.name}`);
const storageRef = storage.put(this.File);
setTimeout(() => {
storage.getDownloadURL().then((res) => (this.preview = res));
}, 3000);
},
},
});
app.$mount("#content");
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 如何使用 Vue 拖放文件上传
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论