Netty使用FileUpload报错Not represented by a file
最近在使用 Netty 处理 post 的时候,在解析 form-data 时,针对上传的文件,有些文件是正常的,但是有些文件就会报如下错误:
java.io.IOException: Not represented by a fileat io.netty.handler.codec.http.multipart.AbstractMemoryHttpData.getFile(AbstractMemoryHttpData.java:288)at io.netty.handler.codec.http.multipart.MixedFileUpload.getFile(MixedFileUpload.java:306)...
通过断点可以看到:
当出现异常的时候,FileUpload对象中,并没有File 这个内置对象。
当没有出现异常的时候,FileUpload 对象中是存在 File 这个对象的。
其原因是我们在解析 form-data 的时候使用的策略导致的。
网络上普遍的接收策略都是:
private static final HttpDataFactory factory = new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE);
这个策略会导致一个问题,就是 form-data 传过来的文件,如果小于 16KB,就单纯的当做 ByteBuf 来处理。
要解决这个问题,需要我们修改一下策略:
//解析文件大小(如果是:minSize则会过滤掉16K以下的文件,这个则不限制文件最小长度) private static final HttpDataFactory factory = new DefaultHttpDataFactory(DefaultHttpDataFactory.MAXSIZE);
这个策略是只要是文件,就会识别为 File 对象,使用 form-data 提交文件时,可以直接通过复制临时文件来达到目的。
参考博客:https://blog.csdn.net/qq_42461790/article/details/107127969
Netty使用FileUpload报错Not represented by a file相关推荐
- scp报错:not a regular file
2019独角兽企业重金招聘Python工程师标准>>> linux 本地文件上传到服务器 scp /home/XXX/file.1txt liujia@172.16.252.32: ...
- sudo vi ~/etc/profile 报错E212:Can't open file for writing
linux系统,安装SPARK时, 命令行窗口输入:sudo vi ~/etc/profile 输入: #SPARK_HOME SPARK_HOME=/home/luoji/JAVA/spark-2. ...
- 2021-08-10 HDFS Web报错Couldn‘t preview the file.
在查看文件内容时,在红框位置出现报错"Couldn't preview the file" 解决方法 第一步:修改hdfs-site.xml,添加配置信息 <property ...
- MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法
MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法 参考文章: (1)MySQL5.7报错[ERROR ...
- Android Sutiod报错:Dx unsupported class file version 52.0(解决)
一.Android Stuido报错 其实Dx unsupported class file version 52.0和Conversion to Dalvik format failed with ...
- SVN报错:can't open file db/txn-current-lock:permission denied 解决方法
现象: SVN服务器重启后,重新挂载SVN仓库,可以下载代码,但是上传代码发现报错:can't open file db/txn-current-lock:permission denied 刚开始以 ...
- SVN报错:can‘t open file db/txn-current-lock:permission denied 解决方法
SVN报错:can't open file db/txn-current-lock:permission denied 解决方法 参考文章: (1)SVN报错:can't open file db/t ...
- mysql 1033_mysql报错1033 Incorrect information in file: ''''xxx.frm''''问题的解决方法(图)...
这篇文章主要介绍了关于mysql报错1033 Incorrect information in file: 'xxx.frm'问题的解决方法,文中通过示例代码介绍的很详细,需要的朋友可以参考借鉴,下面 ...
- 下载公司 svn 项目后启动报错之 uniapp no such file or direc
下载公司 svn 项目后安装依赖报错之 uniapp no such file or direc 近期公司开展微信小程序业务,需要用到uniapp开发,当从svn把主包下载下来后发现安装依赖报错,un ...
最新文章
- 【转】jqGrid学习之参数
- 为啥辣椒会辣得人嘴巴疼?这个问题竟然和今年诺奖有关
- 关于Linux路由表的route命令(转)
- 这或许是实现重试最优雅的姿势了!
- tampermonkey怎么不能用了_iPhone12无线充电不能用怎么办-苹果12无线充电失效原因...
- php中new与构造函数,php - 在构造函数中使用“ new”关键字 - SO中文参考 - www.soinside.com...
- Linux终端(一)
- 博途v14电脑要求_博图TIA V14版本完整体验加测试
- MQ,如何做到削峰填谷
- linux nginx forbidden,Nginx 出现 403 Forbidden 最终解决方法
- 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(1)
- android 斜线 绘制_Android 自定义 斜线进度框 ,雨点式背景
- 高德地图基础教程超详细版
- matlab 图像二值化 后0、1像素的个数统计
- 图文讲解Zabbix 分布式监控平台添加服务监控项(http,nginx,mysql)
- 【软考中级】多媒体应用设计师复习笔记第一章
- 地下水位监测仪 原理
- 计算机ct检查,影像学检查之三 CT(计算机体层)
- “特别”的网易,急了
- centos安装airflow