上传文件的响应

package com.lovobook.RandomCodeServlet;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

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

import org.omg.CORBA.PUBLIC_MEMBER;
//上传文件处理
/**
* Servlet implementation class UpLoadSevLet
*/
@WebServlet("/UpLoadSevLet.do")
//使用注解@MultipartConfig开启Servlet对上传文件的支持
//这就打开了上传文件的功能
@MultipartConfig

public class UpLoadSevLet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public UpLoadSevLet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");

// 获取上传文件的集合(part类是Servlet3.0新特性封装的上传文件类)
Collection<Part> parts =request.getParts();
if (parts.size()==1) {//单文件
// 获取part文件对象
Part part=request.getPart("file");
// 获取协议 头文件描述信息(Servlet3.0没有获取文件名的方法,需要从请求头文件描述中解析出来)

String fileName=getFlieName(part);
// 保存抄做
part.write(getwebContentpath("weekendWork")+"uploadFile\\"+fileName);

//上传多文件
}else if (parts.size()>1) {
for (Part part :parts) {
//获取协议 头文件描述信息(Servlet3.0没有获取文件名的方法,需要从请求头文件描述中解析出来)

String fileName=getFlieName(part);
// 保存抄做 weekendWork工程名
part.write(getwebContentpath("weekendWork")+"uploadFile\\"+fileName);

}
}else {
System.out.println("没有文件");
}
PrintWriter out=response.getWriter();
out.println("上传成功");
out.close();
}
// 获取上传文件名
public String getFlieName(Part part){
// 获取上传文件的请求头的信息
String header =part.getHeader("content-disposition");
// 截断字符串返回的
String[] tempArr1 =header.split(";");

String[] tempArr2 =tempArr1[2].split("=");
// 获取文件名(兼容各种浏览器)
String fileName =tempArr2[1].substring(tempArr2[1].lastIndexOf("\\")
+1).replaceAll("\"", "");

return fileName;

}
// 获取web根路径把文件放在我建的文件里去用
public String getwebContentpath(String projectName){

String path =Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.err.println(path);
// .metadata这个是eclipse里面默认的复制路径的开头文字
int num= path.indexOf(".metadata");
// WebContent工程里面的自带文件
String webContentpath=path.substring(1, num).replace(‘/‘, ‘\\‘)+projectName+"\\WebContent\\";

return webContentpath;

}

时间: 2024-10-26 08:06:19

上传文件的响应的相关文章

接口测试使用jmeter工具上传文件。(无响应/响应为空)

上传假条,说白了就是上传一个图片. 抓到接口参数为: 使用jmeter工具: 1.发送http请求——参数 2.发送http请求——上传文件 ========================================错误=========================================================== 一开始填写: 1.发送http请求——参数 2.发送http请求——上传文件 3.查看结果数——报错 错误是响应为空,考虑可能请求错误,导致无相应. 原因

Node Express 上传文件

1, 安装上传文件依赖 multer => npm i multer -D 2, 基本使用 // 引入必要文件 let express = require('express'); let multer = require('multer'); let fs = require('fs'); let path = require('path'); // 初始化服务器 let app = express(); app.listen(80); // 配置接收的文件在服务器的临时存放路径, any()

jQuery插件-ajaxFileUpload异步上传文件

ajaxFileUpload是前两天学习过程中接触到的一个JQ插件,功能很简单,就是实现异步上传文件的功能. 1.语法介绍 $.ajaxFileUpload([setting]); 参数说明: (1)url——执行上传处理的地址: (2)secureuri——是否启用安全提交,默认为false: (3)fileElementId——需要上传<input type=”file”>控件id属性值: (4)data——自定义参数,即需要额外传递的JSON格式数据: (5)type——请求方式,提交自

Android网络编程之使用HttpClient批量上传文件

请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 我曾在<Android网络编程之使用HTTP访问网络资源>一文中介绍过HttpCient的使用,这里就不在累述了,感兴趣的朋友可以去看一下.在这里主要介绍如何通过HttpClient实现文件上传. 1.预备知识: 在HttpCient4.3之前上传文件主要使用MultipartEntity这个类,但现在这个类已经不在推荐使用了.随之替代它的类是MultipartEntityBuilder. 下面

spring mvc + xmlHttpRequest2.0 实现无刷新上传文件,带进度条和剩余时间

1.springmvc支持文件上传,需要在spring-mvc.xml配置文件中加上下面的一段话: <!-- 支持上传文件 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/> 2.下面介绍下XMLHttpRequest2.0 最早,微软在IE 5引进了这个接口.因为它太有用,其

上传文件

上传文件 1.Form表单上传 接下来我们使用HTML标签来创建文件上传表单,以下为要注意的点: form表单 method 属性必须设置为 POST 方法 ,不能使用 GET 方法. form表单 enctype 属性需要设置为 multipart/form-data. enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码.默认地,表单数据会编码为 “application/x-www-form-urlencoded”.就是说,在发送到服务器之前,所有字符都会进行编码(空格转换

JAVA模拟HTTP post请求上传文件

在开发中,我们使用的比较多的HTTP请求方式基本上就是GET.POST.其中GET用于从服务器获取数据,POST主要用于向服务器提交一些表单数据,例如文件上传等.而我们在使用HTTP请求时中遇到的比较麻烦的事情就是构造文件上传的HTTP报文格式,这个格式虽说也比较简单,但也比较容易出错.今天我们就一起来学习HTTP POST的报文格式以及通过Java来模拟文件上传的请求. 首先我们来看一个POST的报文请求,然后我们再来详细的分析它. POST报文格式 [plain] view plain co

如何将上传文件的浏览按钮修改为自定义按钮

最近,在修改一个国际化项目,碰到一个上传文件的地方,要将显示为的浏览按钮修改为自定义英文的英文按钮Brows,虽说那个按钮会根据系统语言自动切换,但就是在自己电脑上看着不爽,非要改成英文. 大致思想就是:将真的file进行隐藏,使用普通的text和button拼接成我们的文件上传样式.然后设置button的onclick事件,该事件响应的是又是file的click事件,最后设置file的onchange事件,当file改变时将file的value值填充到text的value中(也就是文件的上传路

iOS 网络请求 NSURLSession 的上传文件方法

NSURLSession/NSURLConnection的上传文件方法 此篇文章的理论基础主要是与HTTP网络通信协议相关.为集中精力,可以先把TCP/IP协议这些置之不理,也就是先只关注HTTP的请求和响应的结构.HTTP完整的原理内容就此略过.在此只略提相关内容.文中涉及的设计源码可以通过这里获取 https://github.com/wuqingjian2015/uploadHelper,有意者可以去看看. HTTP是干什么用的呢? 先考虑一下以下应用过程: 从客户端向服务器端发起一个请求