NutzCN Logo
问答 微信小程序用butz做后台的话,我怎么上传文件呢?微信前端怎么写,nutz后台用什么接收
发布于 14天前 作者 Ichenxx 79 次浏览 复制 上一个帖子 下一个帖子
标签:
public Object file(@Param("Filedata") TempFile tf, HttpServletRequest req, AdaptorErrorContext err) {
        try {
            if (err != null && err.getAdaptorErr() != null) {
                return NutMap.NEW().addv("code", 1).addv("msg", "文件不合法");
            } else if (tf == null) {
                return Result.error("空文件");
            } else {
                String suffixName = tf.getSubmittedFileName().substring(tf.getSubmittedFileName().lastIndexOf(".")).toLowerCase();
                String filePath = "/upload" + "/file/" + DateUtil.format(new Date(), "yyyyMMdd") + "/";
                String fileName = tf.getSubmittedFileName() +  DateUtil.format(new Date(), "HHmm") + suffixName;
                String url = filePath + fileName;
                if (ftpService.upload(filePath, fileName, tf.getInputStream())) {
                    return Result.success("上传成功", NutMap.NEW().addv("file_type", suffixName).addv("file_name", tf.getName()).addv("file_size", tf.getSize()).addv("file_url", url));
                } else {
                    return Result.error("上传失败,请检查ftp用户是否有创建目录权限");
                }
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return Result.error("系统错误");
        } catch (Throwable e) {
            log.error(e.getMessage(), e);
            return Result.error("文件格式错误");
        }
    }

这个是我pc端写的上传。那我小程序没有type这个前端控件。我小程序要怎么写,后台才可以获取数据啊。

3 回复
    @At("/wxfile")
    @Ok("json")
    //AdaptorErrorContext必须是最后一个参数
    public Object file(@Param("Filedata") TempFile tf, HttpServletRequest req,@Param("pic") List tff, AdaptorErrorContext err) {
  

少了一个注解@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
但是小程序点击请求能进入这个方法

  // 上传
  bindFilewenjian: function (e) {
    wx.chooseMessageFile({
      count: 1,
      type: 'file',
      success(res) {
        // tempFilePath可以作为img标签的src属性显示图片
        var fileBDsrc = res.tempFiles[0].path
        wx.uploadFile({
          url: 'http://192.168.2.115:9091/wx/wxfile', //仅为示例,非真实的接口地址
          filePath: fileBDsrc,
          name: 'Filedata',
          formData: {
            'user': 'test'
          },
          success(res) {
            const data = res.data
            //do something
          }
        })
      }
    })
  },

不知道改怎么做 有没有案例呀

@AdaptBy(type = UploadAdaptor.class)
添加回复
请先登陆
回到顶部