林夕司雨 2021-10-28 22:23 采纳率: 33.3%
浏览 69

关于阿里云oss以及nginx中出现的问题,困扰一天,实在不知道怎么修改

关于使用阿里云oss存储以及nginx中前后端分离出现的问题
这个问题是关于使用阿里云oss上传头像的,在swagger ui中测试是没有问题的,数据库以及阿里云上面都有存储的数据.
问题在前端,找的我都快吐了
点击保存页面消失,控制台没有任何提示,图片在阿里云以及数据库都没有,因为在idea中报了一个错误

img

img

也就是这个oss上传出现的空指针异常,但是我用swagger测试并没有错,

img


会不会是nginx中出现错误了,这是在nginx.conf中修改的代码
通过9001端口代理了两个新的端口

img


,感觉也没有错误,那他这个空指针到底哪里错了.个人感觉实在前端传输数据给后端时出错了,从而让后端找不到前端的接口,
但是错误我找不到,下面是vue代码,
dev中的端口已经设置为9001,实在找不到那出现了问题,如果是后端哪错的话,可以发一下后端代码,

//这是头像的页面的方法以及相关属性
<el-form-item label="讲师头像">
    <!-- 头衔缩略图 -->
    <pan-thumb :image="String(teacher.avatar)"/>
    <!-- 文件上传按钮 -->
    <el-button type="primary" icon="el-icon-upload" @click="imagecropperShow=true">更换头像</el-button>
    <!--
    v-show:是否显示上传组件
    :key:类似于id,如果一个页面多个图片上传控件,可以做区分
    :url:后台上传的url地址
    @close:关闭上传组件
    @crop-upload-success:上传成功后的回调 -->
    <image-cropper
      v-show="imagecropperShow"
      :width="100"
      :height="100"
      :key="imagecropperKey"
      :url="BASE_API+'/eduoss/fileoss'"
      field="file"
      @close="close"
      @crop-upload-success="cropSuccess"/>

    </el-form-item>

//这是导入的两个组件,进行头像的上传,有些无关的方法就不粘出来了
import ImageCropper from '@/components/ImageCropper'
import PanThumb from '@/components/PanThumb'
export default {
components: { ImageCropper, PanThumb },
    data(){
        return{
          teacher:{     //初始化
              name:'',
              sort:1,
              level:1,
              career:'',
              intro:'',
              avatar:'',
          },
          imagecropperShow:false, //上传弹框 书否显示
          imagecropperKey:0,      //上传组件key值
          BASE_API:process.env.BASE_API,//获取dev.env.js端口号
          saveBtnDisabled: false  //保存按钮是否禁用,  
        }
    },

 methods:{
    close(){  //关闭上传弹窗的方法
      this.imagecropperShow = false
    },
    cropSuccess(data){  //上传成功的方法
      //上传之后得到图片地址,返回地址
      this.teacher.avatar=String(data.url) 
      this.imagecropperShow = false
    },
  • 写回答

3条回答 默认 最新

  • WaiSaa 2021-10-29 07:03
    关注

    1.错误在你后端,处理下空值的情况就行了。你需要在第四张图中的OssServerImpl中的36行处,处理下空值的情况。或者你修改下你请求的url,空值就不要拼个null了。
    2.swagger测试时,有的参数你没传值它自己会处理,后端代码你不判断空值也没问题,到时部署到服务器中其他程序调用就会空指针。
    3.你用postman或者直接在服务器上调用都会出现空值,除了用swagger。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月28日

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误