该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

用表单提交时是正常的

客户端代码:

String path=et_path.getText().toString().trim();

File file=new File(path);

if(file.exists()&&file.length()>0){

AsyncHttpClient client = new AsyncHttpClient();

RequestParams params=new RequestParams();

try {

params.put("picture", file);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

client.post("http://192.168.0.102:8080/upload/servlet/UploadServlet", params, new AsyncHttpResponseHandler(){

@Override

public void onFailure(int arg0, Header[] arg1, byte[] arg2,

Throwable arg3) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "上传失败", Toast.LENGTH_SHORT).show();

}

@Override

public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_SHORT).show();

}

});

}else{

Toast.makeText(this, "文件不存在或文件为空", Toast.LENGTH_SHORT).show();

}

服务端代码:

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if (isMultipart) {

String realpath = request.getSession().getServletContext()

.getRealPath("/files");

System.out.println(realpath);

File dir = new File(realpath);

if (!dir.exists())

dir.mkdirs();

FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("UTF-8");

try {

List items = upload.parseRequest(request);

for (FileItem item : items) {

if (item.isFormField()) {

String name1 = item.getFieldName();// 得到请求参数的名称

String value = item.getString("UTF-8");// 得到参数值

System.out.println(name1 + "=" + value);

} else {

item.write(new File(dir, System.currentTimeMillis()

+ item.getName().substring(

item.getName().lastIndexOf("."))));

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

发生的异常:

org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly

at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:371)

at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)

at UploadServlet.doGet(UploadServlet.java:46)

at UploadServlet.doPost(UploadServlet.java:77)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:619)

Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly

at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:982)

at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:886)

at java.io.InputStream.read(InputStream.java:85)

at org.apache.commons.fileupload.util.Streams.copy(Streams.java:96)

at org.apache.commons.fileupload.util.Streams.copy(Streams.java:66)

at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:366)

... 22 more

怎么发文件到服务器异常,大神帮我看看,我用async-http框架上传文件到服务器发生异常...相关推荐

  1. Android开发笔记(一百一十)使用http框架上传文件

    HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像.朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略.就上传的形式来说,app一般采用htt ...

  2. SSM框架上传文件并不刷新页面,并预览图片

    效果图: Jsp代码(样式自己调): <img id="HeadImg" src="" data-bd-imgshare-binded="1&q ...

  3. Laravel框架上传文件到OSS

    1,在项目的根目录composer.json文件中加入 "aliyuncs/oss-sdk-php": "*": 2,在项目的根目录中运行以下命令 compos ...

  4. nfine框架 上传文件_网站服务器Nginx运行环境,后台文件上传超出Nginx的最大值...

    解决方法: 1.修改Nginx的配置文件(一般是:nginx/nginx.conf),在 http{} 段中增大nginx上传文件大小限制 #设置允许发布内容为8M client_max_body_s ...

  5. nfine框架 上传文件_MVC之Struts2框架--你并不了解的高级应用

    <"爱读书"--给你讲技术>,我来看书,你来进步,让我们开始吧! 本书简介 书名为<轻量级JavaEE企业应用实战>,是本人在学习JavaEE框架的时候阅读 ...

  6. nfine框架 上传文件,nfine(nfine快速开发框架)

    将数据库表中的一条记录抽象成类Row,这个类用HashMap保存关系数据库中表格中一行数据的字段名和值并提供一些相关操作.另外这个类还提供了两个静态方法用于在. one fine day 释义:美好的 ...

  7. fdfs往服务器上传文件超时,FastDFS 实现大文件分片上传

    1.引入fastdfs com.github.tobato fastdfs-client 1.25.2-RELEASE cn.hutool hutool-all 4.0.12 2.编写控制层Contr ...

  8. xftp不能上传文件到服务器,xftp传文件到云服务器

    xftp传文件到云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数 ...

  9. 弹性服务器怎么上传文件,上传哪个文件夹弹性云服务器

    上传哪个文件夹弹性云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本节 ...

  10. 云服务器可以文件服务器,云服务器 可以上传文件

    云服务器 可以上传文件 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数据 ...

最新文章

  1. ANSYS2020R2 Workbench汉化及高分屏适配
  2. 【camera】YOLOV7实现实例分割+目标检测任务(训练、测试、量化、部署)
  3. 家庭记账软件 —— Java
  4. 前端学习(2345):context api
  5. 浏览器字体大小设置_max浏览器app-max浏览器安卓版
  6. 【33.20%】【LA 4320】【Ping pong】
  7. [转]截获asp.net http输出流自己做处理
  8. python操作数据库的几种方法_Python操作MySQL数据库的三种方法总结
  9. lan speed test怎么用_别浪费,你家的200M光纤真的用起来了吗?
  10. JCR分区 与 中科院分区的分区方法
  11. 编程获取中国股市行业分类并作图--使用python、tushare、pyecharts实现
  12. 冀教版四年级上册计算机教案,冀教版信息技术四年级上册教案
  13. 心电信号越界怎么回事_心电信号基础
  14. Android 封装标题栏
  15. 怎样设置台式计算机无线上网,设置无线网络
  16. PyQt5 第六章 拖拽和绘画(二)
  17. VRP基础介绍:VRP基础
  18. 3Q大战10年:丛林法则、黑暗森林与无限游戏
  19. java中policelisten的用法,中考英语简单句和主谓一致专项语法复习
  20. 关于计算机科技科幻作文600字,小学生科幻作文600字:未来世界

热门文章

  1. PIE SDK组件式开发综合运用示例
  2. 大数据学习-----排错记录
  3. Codeforces 486D Valid Sets (树型DP)
  4. 智能优化算法:被囊群算法-附代码
  5. 从零基础入门Tensorflow2.0 ----九、44.2 keras加载保存的参数
  6. sentinel3数据批量下载——sentinelsat
  7. 应用层(DNS域名系统、FTP文件传送协议、远程终端协议TELNET、超文本协议HTTP)
  8. 多线程(一)--线程的创建,Thread类与Runnable接口
  9. StringUtils测试
  10. java 类的继承 例题_Java_接口与类之间继承例题