首页 > 解决方案 > 字符串数据,右截断:1406 第 1 行的“图像”列数据太长

问题描述

当我单击选择一些随机图像时,即使它是 varchar 我的迁移文件,该图像名称也很长

   $table->id();
   $table->string('image');  
   $table->timestamps();

这是我的带有图像预览的图像上传器

  <form @submit.prevent= "createImage()" enctype="multipart/form-data">
        <input type="file" v-on:change="onImageChange" class="form-control">
         <div v-if="image">
               <img :src="image" >
          </div>
       <button type="submit">Submit</button>
  </form>

这是图片上传和图片预览的脚本

 methods:{
        onImageChange(e) {
            let files = e.target.files || e.dataTransfer.files;
            if (!files.length)
                return;
            this.createImage(files[0]);
        },
        createImage(file) {
            let reader = new FileReader();
            let vm = this;
            reader.onload = (e) => {
                vm.image = e.target.result;
            };
            reader.readAsDataURL(file);
        },
         createImage(){
          axios.post(`imageUpload`,{
                image:this.image,
        } 
     }

这是我使用 laravel 图像干预的控制器,但我的图像名称很长,尽管它是 vachar

if($request->get('image'))
    {
        $image = $request->get('image');
        $name = time().'.' . explode('/', explode(':', substr($image, 0, strpos($image, ';')))[1]) 
        [1];
        \Image::make($request->get('image'))->save(public_path('backend/images/').$name);
    }
   Image::create($request->all());

我的图像名称将是这样的

在此处输入图像描述

标签: laravelvue.js

解决方案


如果您的图像文件名正确,请将迁移中的列更改为stringtext()


推荐阅读