在Vue项目根据图片url获取file对象并用axios上传

在Vue项目根据图片url获取file对象并用axios上传

图片url转file对象

<script>
export default {
  data() {
    return {
	  ruleForm: {
        coverUrl: "",
        coverFile: ""
      },
    };
  },
  methods: {
    imgUrlToFile(url) {
      var self = this;
      var imgLink = url;
      var tempImage = new Image();
      //如果图片url是网络url,要加下一句代码
      tempImage.crossOrigin = "*";
      tempImage.onload = function() {
        var base64 = self.getBase64Image(tempImage);
        var imgblob = self.base64toBlob(base64);
        var filename = self.getFileName(self.ruleForm.coverUrl);
        self.ruleForm.coverFile = self.blobToFile(imgblob, filename);
      };
      tempImage.src = imgLink;
    },
    getBase64Image(img) {
      var canvas = document.createElement("canvas");
      canvas.width = img.width;
      canvas.height = img.height;
      var ctx = canvas.getContext("2d
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中使用axios上传图片,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了axiosvue-axios插件。如果没有安装,可以通过以下命令进行安装: ``` npm install axios vue-axios ``` 2. 在你的Vue组件中,导入axiosvue-axios,并将vue-axios插件注册到Vue实例中。例如: ```javascript import axios from 'axios' import VueAxios from 'vue-axios' export default { // ... created() { Vue.use(VueAxios, axios) }, // ... } ``` 3. 在你的Vue组件中,创建一个方法来处理上传图片的逻辑。例如: ```javascript methods: { handleFileUpload(event) { const file = event.target.files[0] const formData = new FormData() formData.append('image', file) axios.post('/upload', formData) .then(response => { // 处理上传成功后的逻辑 }) .catch(error => { // 处理上传失败后的逻辑 }) } } ``` 在上述代码中,我们首先从事件对象获取上传的文件。然后,我们创建一个FormData对象,并将文件附加到FormData中。接下来,我们使用axios的post方法发送POST请求到服务器的`/upload`端点,将FormData作为请求体发送。根据服务器的实现,你可能需要调整请求URL和请求体中的参数名。 4. 在你的Vue模板中,添加一个文件选择输入框,并绑定`change`事件到上面创建的方法。例如: ```html <input type="file" @change="handleFileUpload"> ``` 这样,当用户选择文件后,`handleFileUpload`方法将被调用,并且文件将被上传到服务器。 请注意,上述代码仅涉及前端部分的文件上传逻辑,你还需要在服务器端实现相应的上传处理逻辑。具体的实现方式取决于你使用的后端技术栈,例如Node.js、Django、Spring等。 希望这能帮助到你!如果有任何问题,请随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值