首页 > 其他分享 >Springboot+HTML5+Layui2.7.6上传文件【请求上传接口出现异常】

Springboot+HTML5+Layui2.7.6上传文件【请求上传接口出现异常】

时间:2023-04-06 19:45:47浏览次数:69  
标签:return String HTML5 file Layui2.7 上传 public out

1.最近两天在springboot+html5项目中发现在用layui框架时报请求上传接口出现异常这个错误。

2.将代码全部整理了一遍,发现前端后台都没错!!!

但是还是【请求上传接口出现异常】,于是跑去翻看layui官网。

 

3.最终最终将错误锁定到了返回的JSON字符串中,我是返回的String,所以一直都会报【请求上传接口出现异常】。

 4.可以在controller中将其返回成JSON字符串。

<1>首先我们要导入一个依赖

<!-- fast json-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.54</version>
</dependency>

<2>在controller中修改成上传成功返回JSON字符串

@PostMapping("/uploadFile")
    @ResponseBody
    public HashMap<String, Object> singleFileUpload(@RequestParam("file") MultipartFile file) {

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("fileName = {}", file.getOriginalFilename());
        }
        try {
            if (file == null || NULL_FILE.equals(file.getOriginalFilename())) {
                // return "upload failure";
                return ResultMapUtil.getHashMapUploadFile("upload failure","500");
            }
            fileService.saveFile(file.getBytes(), uploadFolder, file.getOriginalFilename());
        } catch (Exception e) {
            // return "upload failure";
            return ResultMapUtil.getHashMapUploadFile("upload failure","500");
        }
        // return "upload success";
        return ResultMapUtil.getHashMapUploadFile("upload success","200");
    }

【注意:这一步中不同的人写的项目不同,controller也不相同,需要自己的根据实际情况来】

<3>给前端返回JSON格式数据

/**
 * 给前端返回的json格式数据
 */
public class ResultMapUtil {

    // 上传文件返回结果
    public static HashMap<String,Object> getHashMapUpload(String msg, String code){
        HashMap<String,Object> resultMap = new HashMap<>();
        resultMap.put("msg",msg);
        resultMap.put("code",code);
        if("200".equals(code)){
            resultMap.put("msg","success");
        }else {
            resultMap.put("msg","failure");
        }
        return resultMap;
    }

}

<4>文件上传service文件

@Service
@Transactional
public class FileServiceImpl implements FileService {

    private static final String UTF_8 = "UTF-8";

    @Value("${file.uploadFolder}")
    private String uploadFolder;

    @Override
    public void saveFile(byte[] file, String filePath, String fileName) throws Exception {
        File targetFile = new File(filePath);
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath + fileName);
        out.write(file);
        out.flush();
        out.close();
    }
}

<5>文件上传service实现类文件

@Service
@Transactional
public class FileServiceImpl implements FileService {

    private static final String UTF_8 = "UTF-8";

    @Value("${file.uploadFolder}")
    private String uploadFolder;

    @Override
    public void saveFile(byte[] file, String filePath, String fileName) throws Exception {
        File targetFile = new File(filePath);
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath + fileName);
        out.write(file);
        out.flush();
        out.close();
    }
}

5.上传文件的接口按照自己的来,这一步就已经可以成功上传并不会显示请求上传接口出现异常

6.【写在最后】,我们都在路上,加油!!!

标签:return,String,HTML5,file,Layui2.7,上传,public,out
From: https://www.cnblogs.com/aqdm-liuliu/p/17293836.html

相关文章

  • c#.net怎么实现web端上传超大文件
    ​ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。ASP.NET页面设计:TextBox和Button按钮。​编辑TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实......
  • 记录一次小程序中讨厌的拍照上传的优化
    背景工作中出现了一个业务,需要用户拍照并上传base64格式的图片内容供后台识别。项目并非从零开始,一通配置后跑了起来。自测了一会,下班时间到,开溜。就在回家路上,打开手机分享图片时傻眼了,相册里全是自测的时候拍摄的照片,感到不舒服,这个项目之前据说已经交付过,我觉得用户肯定和我......
  • vue 上传大型文件插件(vue上传视频插件)
    ​IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传......
  • vue前端实现上传文件,vue 上传文件
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传  可以带参数        [HttpPost("upload")]        publicJsonResultuploadProject(I......
  • JavaScript超大文件上传解决方案:分片断点上传(一)
    ​ 前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案:1,修改服务端上传的限制配置;Nginx以......
  • input上传文件的实际应用
    'Content-Type':'multipart/form-data'类型使用场景:在vue2.0中,有统一的请求封装文件,下面文件为请求封装的使用,因项目不同可以忽略(vue-element-admin架构)html部分<divclass='public_normal_btn'@click='$refs.file_item.click()'>导入</div><inputsty......
  • php上传文件简单示例
    php上传文件简单示例 <?php$log='';$buf=ob_get_contents();ob_end_clean();$postmaxsize=trim(ini_get('post_max_size'));//preg_match_all('/\d+/',$postmaxsize,$arr);//$number=$arr[0][0];//if(strpos($postmaxsize,&#......
  • PHP上传文件的大小限制
    PHP上传文件的大小限制Warning:POSTContent-Lengthof625523488bytesexceedsthelimitof8388608bytesinUnknownonline0当Warning:online0做出错误警告时,设定error_reporting(0);ini_set("display_errors",0);无效如何不显示这种错误呢方法一:设置php.i......
  • 求PHP超大文件上传解决方案:分片断点上传(一)
    ​ PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此......
  • 第十七篇 HTML5 脚本编程
    bycaixin深圳跨文档消息传递跨文档消息传送(cross-documentmessaging),有时候简称为XDM,指的是在来自不同域的页面间传递消息。例如,www.wrox.com域中的页面与位于一个内嵌框架中的p2p.wrox.com域中的页面通信跨文档消息传递简称XDM,指不同域的页面间传递消息,XDM的核心是......