vue实现超级简单的文件上传

前两天刚写完文件上传,在这里记录一下。如果不需要算签名和token认证的话可以把那两行去掉
在这里插入图片描述

在这里插入图片描述
html:

<div id="app">
<!--<form enctype="multipart/form-data" action="/auth/fileUploadLocal" method="post">-->
    照片:<input type="file" name="uploadFile"><br/>
    <!--<input type="submit" value="上传">-->
    <button class="login" style="width: 50px;height: 30px;" @click="fileUpload()">上传</button>
<!--</form>-->
    <br/>
    <img :src="file.url" style="width: 410px;height: 600px">
</div>

js:

new Vue({
    el: "#app",
    methods: {
        fileUpload: function () {
            console.info("sbkjauth:" + localStorage.getItem("sbkjauth"));
            var _this = this;
            var formData = new FormData();
            formData.append("uploadFile", $("input[name='uploadFile']")[0].files[0]);
            axios({
                method: "post",
                url: "/auth/fileUploadLocal" + getSign(),  // 算签名,不需要可以去掉
                data: formData,
                headers: {
                    'Content-Type': 'multipart/form-data',  // 文件上传
                    // 'Content-Type': 'application/x-www-form-urlencoded',  // 表单
                    // 'Content-Type': 'application/json;charset=UTF-8'  // json
                    "sbkjauth": localStorage.getItem("sbkjauth")  // token ,不需要可以去掉
                },
            }).then(function (response) {
                console.log(response);
                alert(response.data.message);
            }).catch(function (reason) {

            })
        },

    }
});

如果发现什么问题请留言,毕竟代码都是人写的难免会出错。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue3超购项目的图片上传可以使用第三方库或自己编写代码实现。以下是其中一种实现方式: 1. 安装并导入 VueCLI 和 Element UI ``` npm install -g @vue/cli npm install element-ui --save ``` 2. 创建一个上传组件 ```html <template> <el-upload class="upload-demo" action="/upload" :on-success="handleSuccess" :before-upload="beforeUpload"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> </template> <script> export default { methods: { beforeUpload(file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' const isLt500K = file.size / 1024 < 500 if (!isJPG) { this.$message.error('上传图片只能是 JPG/PNG 格式!') } if (!isLt500K) { this.$message.error('上传图片大小不能超过 500KB!') } return isJPG && isLt500K }, handleSuccess(response) { this.$message.success('上传成功') this.$emit('upload-success', response.url) } } } </script> ``` 3. 在父组件中使用该上传组件 ```html <template> <div> <upload-component @upload-success="handleUploadSuccess"></upload-component> <img :src="imageUrl"> </div> </template> <script> import UploadComponent from './UploadComponent.vue' export default { components: { UploadComponent }, data() { return { imageUrl: '' } }, methods: { handleUploadSuccess(url) { this.imageUrl = url } } } </script> ``` 这里使用 Element UI 的上传组件,通过设置 `before-upload` 方法可以限制上传文件的类型和大小,并在上传成功后触发 `handleSuccess` 方法将图片地址传回父组件。在父组件中,我们使用 `img` 标签展示上传的图片。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值