java上传文件到servlet接口 5C

如何实现把文件流(或字节数组)从一个接口传到servlet接口,使用post方式提交,
文件流(或字节数组)有可能较大,在servlet中如何接收到文件流。在线急等

1

12个回答

搜下fileupload

0

使用文件上传接口;post字符串,tomcat会限制长度

0

直接使用post上传到服务器

0

//将request变成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
//获取multiRequest 中所有的文件名
Iterator iter = multiRequest.getFileNames();
while (iter.hasNext()) {
docFileId = docFileService.getDocumentId();
picId = docFileService.getFoodPictureId();
//一次遍历所有文件
MultipartFile file = multiRequest.getFile(iter.next().toString());

0
qq969068709
陌路渐远 不是spring框架,没法用MultipartHttpServletRequest
一年多之前 回复

使用文件上传接口;post字符串,tomcat会限制长度。直接使用post上传到服务器

0

1、重载 HttpServlet 中的 doPost 方法。
2、调用 request.getContentLength() 得到 Content-Length ,并定义一个与 Content-Length 大小相等的字节数组buffer。
3、从HttpServletRequest 的实例 request 中得到一个 InputStream, 并把它读入 buffer 中。
4、使用用 FileOutputStream 将 buffer 写入指定文件。

0

response.setContentType("application/文件类型");
response.setHeader("Content-Disposition","attachment; filename=\"文件名\"");
ServletOutputStream out = response.getOutputStream();
out.write(内容);

0

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.ProgressListener;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;

import com.taxi.Constant;
import com.taxi.jdbc.dao.HelpDao;
import com.taxi.jdbc.dao.base.UploadDao;
import com.taxi.jdbc.dao.bean.UpLoadBean;
import com.taxi.jdbc.dao.imp.UploadDaoImp;
import com.taxi.util.Commend;

/**

  • @author lolin
  •     资源上传
    

    */
    @WebServlet(name = "Upload", urlPatterns = "/Upload")
    public class ResourceUpload extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    response.reset();// 清空输出流
    response.setContentType("text/html");
    response.setCharacterEncoding(Commend.UTF8);
    System.out.println("开始上传");
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if (!isMultipart) {
    throw new RuntimeException("your form is not multipart/form-data");
    }
    Connection conn = null;
    try {
    conn = HelpDao.getInstance().getConnection();
    UploadDao uploadDB = new UploadDaoImp(conn);
    String root_path = "E:/resource";
    // 设置文件大小位置等等
    DiskFileItemFactory diskfactory = new DiskFileItemFactory();
    // 指定临时文件的存储目录
    // diskfactory.setRepository(new File("path"));
    // 核心类处理上传逻辑
    ServletFileUpload fileUpload = new ServletFileUpload(diskfactory);

        // 解决表单乱码
        fileUpload.setHeaderEncoding("utf-8");
        // 进度条
        fileUpload.setProgressListener(new ProgressListener() {
            @Override
            public void update(long pBytesRead, long pContentLength,
                    int pItems) {
    
                if (pContentLength == -1) {
                    System.out.println("文件错误");
                } else {
                    float percent = (float) (pBytesRead * 1.0
                            / pContentLength * 100);
                    int percents = (int) percent;
                    System.out.println("已完成: " + percents + "%");
                }
            }
        });
    
        // fileUpload.setFileSizeMax(1024*1024*3); //单个文件不能超过3M
        // fileUpload.setSizeMax(1024*1024*6);//总上传文件不能超过6M
    
        List<FileItem> listItem = fileUpload.parseRequest(request);
        StringBuffer uuid_sb = new StringBuffer();
        for (FileItem item : listItem) {
            if (item.isFormField()) {
                // 普通文本input
                processFormField(item);
            } else {
                // 文件上传
                if (item.getName() != null && !item.getName().equals("")) {
                    // 扩展名
                    String separator = FilenameUtils.getExtension(item.getName());
                    String directory = root_path + File.separator + separator;
                String absolutePath =   processFileUpload(item, directory);
                String uuid =uploadDB.insert(absolutePath,(int)item.getSize());
                uuid_sb.append(uuid);
                uuid_sb.append(",");
                } else {
                    System.out.println("没有提交文件");
                }
    
            }
        }
        String result =uuid_sb.toString().substring(0, uuid_sb.length()-1);
        response.getWriter().write(result);
    
    } catch (FileUploadException e) {
        e.printStackTrace();
        response.sendError(500);
    } catch (SQLException e1) {
        e1.printStackTrace();
        response.sendError(500);
    } catch (Exception e2){
        e2.printStackTrace();
        response.sendError(500);
    }finally {
        HelpDao.getInstance().closeConn(conn);
    }
    

    }

    // 普通input
    private void processFormField(FileItem item) {
    try {
    System.out.println("普通文件" + item.getFieldName() + " "
    + item.getString("utf-8"));
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }

    }

    // 上传文件
    private String processFileUpload(FileItem item, String path)
    throws Exception {
    String filename = item.getName();
    System.out.println("上传的文件名" + filename);
    if (filename != null) {
    filename = FilenameUtils.getName(filename);
    }
    // 解决重名问题
    filename = Constant.sdf.format(new Date()) + "_" + filename;

    File dirctoryFile = new File(path);
    
    // 按照日期进行打算存储目录
    File newFileDir = makeChildDirectory(dirctoryFile);
    
    if (!newFileDir.exists()) {
        newFileDir.mkdirs();
    }
    // 用文件名的hashCode计算打散的存储目录:二级目录
    // File newFileDir = makeChildDirctory(dirctoryFile,filename);
    File file = new File(newFileDir, filename);
    

// file.createNewFile();
item.write(file);
// 删除临时文件
item.delete();
return file.getAbsolutePath();
}

/**
 * 按照日期打散目录
 * 
 * @param storeDirectroy
 * @return
 */
private File makeChildDirectory(File storeDirectroy) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String dateDir = sdf.format(new Date());
    File file = new File(storeDirectroy, dateDir);
    if (!file.exists()) {
        file.mkdirs();
    }
    return file;
}


protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
}

}

0
0

我的理解是,你要上传一个文件到对方给定的路径下,上传方法对方已经做好了,按照你说的是servlet方法,我接触过的是如果你要从一个系统的接口调用另一个系统的接口,这是属于系统间调用的问题。
可以采用的方法有很多,最直接的就是使用httpclient和webservice,或者jdk自带的rpc调用。

0
共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java基于servlet的文件上传
研究了一天终于将java上传文件看懂了,当然懂的仅仅是皮毛,不妨记下来防止以后忘了。rn我们在网上看关于文件的上传有很多的介绍,当然有的可以使用有的则不合适:我们首先来看前台的界面rnnnnn上传文件nnnnnn n n 上传文件n n n n Submitn Resetn n
java模拟http请求,同时上传多个文件及参数(Servlet)
npackage com.acconsys.servlet;nnimport java.io.File;nimport java.io.FileInputStream;nimport java.io.IOException;nimport java.io.InputStream;nimport java.util.HashMap;nimport java.util.List;nimport jav...
servlet3.0 Part接口实现form表单文件上传
JSP页面nnnn"user?action=update" method="post" enctype="multipart/form-data"> n type="file" name="image" id="image"/>n type="submit" class="btn btn-primary">提交nnnform表单上传文件需要更改enctype=”multipa
ajax+servlet实现向服务端上传文件
客户端代码:rnrnmaicaijianrnrnhello worldrnrnrn                           //action的服务URL改成你自己的rnrnrnrnrn    rn        分段读取文件:rn        rn            rn            rn        rn    rnrn/*rn* 分段读取文件为blob ,并使用a
【前端】H5+Servlet文件上传
记录一下,供大家参考供自己备用,nn原生开发爱好,框架什么的都是浮云!nnindex.html : 测试环境 google chromenn nnn&amp;lt;!DOCTYPE html&amp;gt;n&amp;lt;html&amp;gt;n&amp;lt;head&amp;gt;n &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;n &amp;lt;title&amp;gt;标题&amp;lt;/title&amp;gt;n&amp;lt;/head&a
Servlet实现文件上传和下载
文件的上传nnn表单的设置 n 设置表单的enctype,提交方式必须为postnnnnn&amp;amp;lt;form action=&amp;quot;up&amp;quot; method=&amp;quot;post&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;amp;gt;n &amp;amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;myfi
微软云+Servlet实现图片上传接口
业务需求是这样的,开发一个图片上传的功能,要求输入一个订单号,并上传对应的图片,后台接收图片,并调用微软云接口,将图片传到微软云存储上。开发过程中间遇到一些小问题,记录并展示出来,提供给相似的业务作参考。
使用原生的Servlet封装文件上传和下载
原生的东西在任何地方都是适用的,就算是以后引用在框架中,也可以使用原生的东西;rnrn新手对于文件的上传和下载没有头绪的可以作为参考:rnrn以一个图片上传,下载和展示为例:rnrn一:首先是一个选择上传文件的input控件rnrnrnaction="${thispath }/UAD?method=up&upload=upload&before=/imi&id=${user.id }"rnmeth
ajax异步文件上传,servlet处理,含demo
n附件是例子程序,欢迎下载。rn rn用到两个jar包rncommons-io-xx.jarrncommons-fileupload-xx.jarrnxx代表版本号rn rn新建一个普通的java web工程rn rn前端页面jsp代码:rnrnrnn[html] view plaincopyrn rnrnrnn&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;te...
Android、IOS 图片上传接口(Java实现Servlet)。
Android、IOS 图片上传接口(Java实现Servlet)。nn1、java Servlet 实现代码。npackage com.ninepoint.babystar.server.action;nnimport java.io.File;nimport java.io.IOException;nimport java.io.PrintWriter;nimport java
使用MySQL和Servlet编写Android接口样例(服务器端代码)
使用MySQL和Servlet编写Android接口样例(服务器端代码)
C#调用servlet 发送XML
通过C#调用servlet发送xml文件。
Web界面实现文件上传, 后台Servlet进行保存与调用.
写的第一篇博客,小菜鸟的成长之路—尽请期待: n该篇思路: n1. 文件上传首先要借助第三方库–commons (而commons-fileupload使用依赖于commons-io),所以要去apache下载两个jar包,并导入到项目的lib目录下. n2. 可以根据commons的用户导向,使用commons-fileupload: —-固定使用步骤 n // Create a fac...
Servlet上传文件到指定路径-Form提交
我们使用开源项目Commons FileUpload最常用ServletFileUpload上传nn项目结构:nnnnpom.xmlnn这里就是用到了javax.servlet-api-3.0.1.jar、commons-fileupload-1.3.2.jar、commons-io-2.2.jarnnn&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/...
Servlet文件上传的实现
1.常用的三个文件上传组件:apache commons-upload,Orialiy – COS – 2008() ;smart-uploadrn2.使用commons-upload开发文件上传功能rn1).下载commons-upload的jar包及依赖包;并添加到项目工程中rn2).修改html的form表单,设置表单的内容编码类型为:multipart/form-datern3).编写js
JAVA文件上传-原始的SERVLET方式
前言:rnrn干了这几个项目,也做过几次文件上传下载,要么是copy项目以前的代码,要么是百度的,虽然做出来了,但学习一下原理弄透彻还是很有必要的。刚出去转了一圈看周围有没有租房的,在北京出去找房子是心里感觉最不爽的时候,没有归属感,房租还不便宜,RT,不能好高骛远,还是脚踏实地一点一点学技术吧,终将有一日,工资会涨的。rnrnjava文件上传rnrn传统的文件上传,不用jquery插件的话,就是
Java Servlet3.0使用getPart/getParts实现单文件和多文件上传
一、使用工具:rn(1)Firefox浏览器rn(2)Eclipsern二、实现单文件上传rn(1)Servlet 源码rnpackage com.servlet;rnrnimport java.io.IOException;rnrnimport javax.servlet.ServletException;rnimport javax.servlet.annotation.MultipartConfig;rnimpo...
Java Servlet上传文件
NULL 博文链接:https://doujun1998.iteye.com/blog/1758563
[Java] servlet实现带上传进度条文件上传
这个问题,我试了几天了,文件是上传了,但是一直不能显示进度条,后来我一边查阅资料,一边修改,终于解决了,希望大家帮我顶起来哦。需要两个JAR包文件rn下载地址:前两个是commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar,这个两个是必须的。rn本帖隐藏的内容rn上传效果图:rnrn关于Java代码的下载地址:rn本帖隐藏的内容 ajaxup.rar (...
Java 上传文件接口 示列
nnnpublic class UploadServlet extends HttpServlet {nn /**n * n */n private static final long serialVersionUID = 1L;n n @Overriden protected void doGet(HttpServletRequest request, HttpSe...
【ServletFileUpLoad】上传本地文件到服务器
【ServletFileUpLoad】上传本地文件到服务器rnrnrn一、项目需要的jar包rnrnrnrnrn二、上传实例rnrnrnpackage test23_2;nnimport java.io.File;nimport java.io.IOException;nimport java.io.PrintWriter;nimport java.util.List;nimport java.u
Servlet实现文件上传详解与实战
文件上传nnn1.客户端编程nnn要上传文件,必须利用mutipart/form-data 设置HTML表单的enctype 属性值nnSelect a file nnnnn如果想上传多个文件,则不得不使用文件input元素,在input元素加入multipel属性 ,以便生成一个按钮供选择多个文件n n nn    同样效果nnnnnnnn2.
jquery ajax 无刷新上传文件到servlet
删除文件的表单要加入如下enctype属性:nnenctype="multipart/form-data">nn要实现无刷新上传文件首先要阻止submit按钮提交表单,在submit按钮添加onclick属性:nnonclick="return false">登录nn这样写这个提交按钮就失效了。n接着需要在按下提交按钮时执行ajax操作,将标签改为:nnreturn uplo
Flex文件上传【源码】
Flex和java servlet实现上传文件
ajax异步文件上传,servlet处理
ajax异步文件上传,servlet处理
利用 WebServlet3.0新特性Part实现文件上传
利用webservlet3.0新特性来上传文件的操作是十分简单的,首先我们要在servlet中加入标注@MultipartConfig,该标注主要是为了辅助Servlet3.0中HttpServletRequest提供的对上传文件的支持。该标注写在Servlet类的声明之前,一表示该Servlet希望处理的请求时multipart/form-data类型的。因为上传文件类型会指定文件类型encty...
Java:Servlet使用AJAX异步上传文件
没有中文乱码问题。rn1. 客户端使用HTML + JavaScript(AJAX) rnrnrn rn Upload Demornrn rnrn rn rn rn $(function() {rn // 创建AJAX方式上传文件rn var $uploadBtn = $(&quot;#uploadBtn&quot;);rn new ...
servlet上传功能前端和后端的实现
最近项目需要做一个文件上传功能,做完了分享下,顺带当做笔记。 n上传功能用后台用java实现,前端主要是js的ajax实现。后台还加入定时删除临时文件。 n效果如图 n n n首先是上传功能的主要类,下面是代码package util.upload;nimport java.io.File;nimport java.io.IOException;nimport java.text.SimpleDat
Servlet学习:(三)Servlet3.0 上传文件
一、注意事项nnn客户端(浏览器)nn表单的提交方法必须是postn 必须有一个文件上传组件 &amp;lt;input type=&quot;file&quot; name=&quot;file&quot;/&amp;gt;n 必须设置表单的enctype=&quot;multipart/form-datan服务器nn在Servelt上添加注解  @MultipartConfignnn二、参考nnnHttpServletRequest 对文件上传的支持nn此前...
Servlet处理POST上传的文件
Java Servlet实现文件上传的功能。
Java 文件下载/上传限流算法
文章目录一、算法思路二、限流的完整java代码实现三、注意点四、具体demo的github地址n在做文件下载功能时,为了避免下载功能将服务器的带宽打满,从而影响服务器的其他服务。我们可以设计一个限流器来限制下载的速率,从而限制下载服务所占用的带宽。n一、算法思路n定义一个数据块chunk(单位 bytes)以及允许的最大速率 maxRate(单位 KB/s)。通过maxRate我们可以算出,在ma...
servlet下文件上传于进度条
在页面中听过来上传文件 nform表单:<form onsubmit="getProgress()" action="upFile" method="post" enctype="multipart/form-data">n <input name="file" type="file">n <!-- 进度条 -->n <div class="progress"></
ajax 实现文件上传
n  ajax 由于其无法直接发送表达形式的数据,因此不能直接使用ajax实现无刷新附件上传,但是可以通过其包装实现这一功能。引入jquery 和 包装类 rn &amp;lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&amp;gt;&amp;lt;/script&amp;gt;rn&amp;lt;script language=&quot;JavaScript&quot; type=&quot;text/java.
android上传文件,java服务器接收 客户端与服务器端两端上传代码
android手机客户端上传文件,java servlet服务器端接收并保存到服务器。 客户端和服务器端代码已完整提供,如无法使用,请联系
j2ee upload file
上传文件的java servlet代码,亲测可用.
Java使用servlet实现文件上传至数据库和从数据库下载文件
一、前台rn1.上传页面rnrn<%@ page language="java" contentType="text/html; charset=UTF-8"n pageEncoding="UTF-8"%>nnnnnInsert title herennnn 上传文件1:n nnn2、下载页面原理同上rnrn二、上传rnpackage MainServlet;nnimport java.io
java servlet上传文件
利用java servlet上传文件 word文档
JavaEE-Servlet-文件上传和下载
一、文件上传1.文件上传表单(Html) <form action="${pageContext.request.contextPath}/UploadServlet" n method="POST" enctype="multipart/form-data">n 描述信息<input type="text" name="desc"/>n <i
java servlet上传文件 项目中用的.绝对能用
上载文件.轻松搞定.java Servlet上传文件.
在C#客户端用HTTP上传文件到Java服务器
最近在做C / S 开发,需要在C#客户端上传文件到Java后台进行处理。nn对于较大的文件我们可以直接用FTP协议传文件,较小的文件则可以向B / S 一样用HTTP上传。nn首先,由于要传文件,我们需要用 POST 来发送数据。GET 有长度限制,而且数据跟在URL后面。nn既然要发送POST请求,我们先来看看POST 请求的报文格式。nnHTTP 报文介绍nn先写一个简单的Html 页面发送...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java 学习 接口 java接口的学习