精华内容
下载资源
问答
  • 2021-02-28 08:02:43

    从request获取各种路径总结

    request.getRealPath("url"); // 虚拟目录映射为实际目录

    request.getRealPath("./");    // 网页所在的目录

    request.getRealPath("../"); // 网页所在目录的上一层目录

    request.getContextPath();    // 应用的web目录的名称

    例如     http://localhost:8080/bookStore/

    /bookStore/ => [contextPath] (request.getContextPath())

    获取Web项目的全路径

    String strDirPath = request.getSession().getServletContext().getRealPath("/");

    以工程名为TEST为例:

    (1)得到包含工程名的当前页面全路径:request.getRequestURI()

    结果:/TEST/test.jsp

    (2)得到工程名:request.getContextPath()

    结果:/TEST

    (3)得到当前页面所在目录下全名称:request.getServletPath()

    结果:如果页面在jsp目录下 /TEST/jsp/test.jsp

    (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp")

    结果:D:\resin\webapps\TEST\test.jsp

    (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();

    结果:D:\resin\webapps\TEST

    2.在类中取得路径:

    (1)类的绝对路径:Class.class.getClass().getResource("/").getPath()

    结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

    (2)得到工程的路径:System.getProperty("user.dir")

    结果:D:\TEST

    3.在Servlet中取得路径:

    (1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。

    结果:E:\Tomcat\webapps\TEST

    (2)得到IE地址栏地址:request.getRequestURL()

    结果:http://localhost:8080/TEST/test

    (3)得到相对地址:request.getRequestURI()

    结果:/TEST/test

    更多相关内容
  • 从request中获取文件流的两种方式

    万次阅读 2018-06-14 14:23:51
    方法一: HttpServletRequest中获取文件信息参考文档:https://blog.csdn.net/java_newstar/article/details/78053891Collection<Part> parts = req.getParts(); for (Iterator<Part> ...

    方法一: 从HttpServletRequest中获取文件信息

    参考文档:https://blog.csdn.net/java_newstar/article/details/78053891
    Collection<Part> parts = req.getParts();
    for (Iterator<Part> iterator = parts.iterator(); iterator.hasNext();) {
        Part part = iterator.next();  
        System.out.println("-----类型名称------->"+part.getName());
        System.out.println("-----类型------->"+part.getContentType());
        System.out.println("-----提交的类型名称------->"+part.getSubmittedFileName());
        System.out.println("----流-------->"+part.getInputStream());
    }

    方法二: 从MultipartHttpServletRequest中获取文件信息


    //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
    CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(
                        request.getSession().getServletContext());
    // 判断是否是多数据段提交格式
     if (multipartResolver.isMultipart(request)) {
             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
             Iterator<String> iter = multiRequest.getFileNames();
             logger.info("iter.hasNext(): "+iter.hasNext());
             Integer fileCount = 0;
             while (iter.hasNext()) {
                    MultipartFile multipartFile = multiRequest.getFile(iter.next());
                    String fileName = multipartFile.getOriginalFilename();
                    logger.info("upload filename: " + fileName );
                    if(fileName == null || fileName.trim().equals("")){
                          continue;
                    }
                    //20170207 针对IE环境下filename是整个文件路径的情况而做以下处理
                    Integer index = fileName.lastIndexOf("\\");
                    String newStr = "";
                     if(index>-1){
                           newStr = fileName.substring(index+1);
                      }else{
                           newStr = fileName;
                      }
                     if(!newStr.equals("")){
                            fileName = newStr;
                      }
                      logger.info("new filename: " + fileName );
    
                      if (multipartFile != null) {
                            HashMap<String,Object> result =  DispatchInterfaceUtil.uploadInputStream(multipartFile.getInputStream(),multipartFile.getSize(),fileName);
                      }
            }
    }






    展开全文
  • 4.从Request中获取文件数据

    万次阅读 2017-11-06 12:40:41
    * 工具类 -HttpServletRequest中获取文件数据 * */ public class RequestUtil { /** * HttpServletRequest中获取所有的文件 * * @param request * @return FileItem对象列表 * @...
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    /**
     * 工具类 -从HttpServletRequest中获取文件数据
     * 
     */
    public class RequestUtil {
    
        /**
         * 从HttpServletRequest中获取所有的文件
         * 
         * @param request
         * @return FileItem对象列表
         * @throws FileUploadException
         */
        public static List<FileItem> getFileItemList(HttpServletRequest request) throws FileUploadException {
            List<FileItem> fileItemFromRequestList = getDataFromRequest(request);
            if (fileItemFromRequestList != null && !fileItemFromRequestList.isEmpty()) {
                List<FileItem> fileItemList = new ArrayList<>();
                for (FileItem fileItem : fileItemFromRequestList) {
                    if (!fileItem.isFormField()) { // 文件
                        fileItemList.add(fileItem);
                    }
                }
                return fileItemList;
            }
            return null;
        }
    
        /**
         * 从request中获取FileItem对象列表
         * 
         * @param request
         * @return fileItemFromRequestList
         * @throws FileUploadException
         */
        private static List<FileItem> getDataFromRequest(HttpServletRequest request) throws FileUploadException {
            String tempPath = request.getServletContext().getRealPath("/temp");
            File file = new File(tempPath);
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(1024 * 1024 * 1024);// 设置缓存大小
            factory.setRepository(file);// 默认情况下 临时文件不会自动删除
            ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
            List<FileItem> fileItemFromRequestList = servletFileUpload.parseRequest(request);
            file.delete(); // 删除临时文件
            return fileItemFromRequestList;
        }
    }
    
    展开全文
  • 获取request中文件

    千次阅读 2021-04-16 16:53:25
    1.先看request中文件类型 2.强转类型成StandardMultipartHttpServletRequest StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) request; 3...

     

    1.先debug看request中文件类型

    2.强转类型成StandardMultipartHttpServletRequest

    StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) request;

    3.StandardMultipartHttpServletRequest中有一个获取参数的方法getParameterMap,可以直接获取到request中的相关参数

    StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) request;
    Map<String, String[]> parameterMap = standardMultipartHttpServletRequest.getParameterMap();
    String[] imageFiles= parameterMap.get("imageFile");//上报的文件的参数名称

     4.还有一个是获取多文件的方法getMultiFileMap返回是MultiValueMap,是StandardMultipartHttpServletRequest继承AbstractMultipartHttpServletRequest中的方法

    MultiValueMap<String, MultipartFile> multiFileMap = standardMultipartHttpServletRequest.getMultiFileMap();
    //获取文件
    MultipartFile multipartFile = multiFileMap.getFirst("xxxFile");
    if(multipartFile != null){
        //获取文件名
    	String originalFilename = multipartFile.getOriginalFilename();
    	//获取流
    	InputStream inputStream = multipartFile.getInputStream();
    	//上传到oss
    	String imageUrl = recvHikVisionUploadImage(inputStream,originalFilename);
    }
    
    private static String readInfoStreamToBytes(InputStream is) {
    	if (is == null) {
    		return null;
    	}
    	// 字节数组
    	byte[] bCache = new byte[2048];
    	int readSize = 0;// 每次读取的字节长度
    	int totalSize = 0;// 总字节长度
    	ByteArrayOutputStream infoStream = new ByteArrayOutputStream();
    	try {
    		// 一次性读取2048字节
    		while ((readSize = is.read(bCache)) > 0) {
    			totalSize += readSize;
    			if (totalSize > 1024 * 1024 * 10) {
    				return null;
    			}
    			// 将bcache中读取的input数据写入infoStream
    			infoStream.write(bCache, 0, readSize);
    		}
    	} catch (IOException e1) {
    		return null;
    	} finally {
    		try {
    			is.close();
    		} catch (IOException e) {
    		}
    	}
    	BASE64Encoder encoder = new BASE64Encoder();
    	return encoder.encode(infoStream.toByteArray());
    }
    
    public String recvHikVisionUploadImage(InputStream inputStream,String originalFilename){
    	try {
    		String imgStr = readInfoStreamToBytes(inputStream);
    
    		sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
    
    		// Base64解码
    		byte[] b = decoder.decodeBuffer(imgStr);
    		for (int i = 0; i < b.length; ++i) {
    			if (b[i] < 0) {// 调整异常数据
    				b[i] += 256;
    			}
    		}
    		//上传到oss
    		BaseResult<String> result = ossV2Helper.uploadFileInputStream(b, originalFilename +".jpg", "jpg");
    		return result.getData();
    	}catch (IOException e){
    		e.printStackTrace();
    	}
    	return null;
    }

    下面是完整代码,有model类和一些判断会删除掉

     

    @RequestMapping("/XXX")
    public BaseResult<XXX> XXX(HttpServletRequest request) throws IOException {
    	StandardMultipartHttpServletRequest standardMultipartHttpServletRequest = (StandardMultipartHttpServletRequest) request;
    	Map<String, String[]> parameterMap = standardMultipartHttpServletRequest.getParameterMap();
    	String[] imageFiles= parameterMap.get("imageFile");//上报的文件的参数名称
    	if(!StringUtils.isEmpty(mixedTargetDetections) && mixedTargetDetections.length > 0){
    		//获取必要的设备信息
    		String mixedTargetDetection = mixedTargetDetections[0];
    		JSONObject jsonObject = JSONObject.parseObject(mixedTargetDetection);
    		if(!StringUtils.isEmpty(jsonObject.get("macAddress"))){
    			//mac地址
    			String macAddress = jsonObject.get("macAddress").toString();
    			String deviceMac = macAddress.replaceAll(":", "");
    			MultiValueMap<String, MultipartFile> multiFileMap = standardMultipartHttpServletRequest.getMultiFileMap();
    			//获取文件
    			MultipartFile multipartFile = multiFileMap.getFirst("xxxFile");
    			if(multipartFile != null){
    				String originalFilename = multipartFile.getOriginalFilename();
    				InputStream inputStream = multipartFile.getInputStream();
    				String imageUrl = recvHikVisionUploadImage(inputStream,originalFilename);
    				
    			}else {
    				logger.info("nofaceImage=" +multiFileMap.toString());
    			}
    		}else{
    			logger.info("mixedTargetDetection=" +mixedTargetDetection);
    		}
    	}else{
    		logger.info("parameterMap=" +parameterMap.toString());
    	}
    
    	return BaseResult.success();
    }
    
    private static String readInfoStreamToBytes(InputStream is) {
    	if (is == null) {
    		return null;
    	}
    	// 字节数组
    	byte[] bCache = new byte[2048];
    	int readSize = 0;// 每次读取的字节长度
    	int totalSize = 0;// 总字节长度
    	ByteArrayOutputStream infoStream = new ByteArrayOutputStream();
    	try {
    		// 一次性读取2048字节
    		while ((readSize = is.read(bCache)) > 0) {
    			totalSize += readSize;
    			if (totalSize > 1024 * 1024 * 10) {
    				return null;
    			}
    			// 将bcache中读取的input数据写入infoStream
    			infoStream.write(bCache, 0, readSize);
    		}
    	} catch (IOException e1) {
    		return null;
    	} finally {
    		try {
    			is.close();
    		} catch (IOException e) {
    		}
    	}
    	BASE64Encoder encoder = new BASE64Encoder();
    	return encoder.encode(infoStream.toByteArray());
    }
    
    public String recvHikVisionUploadImage(InputStream inputStream,String originalFilename){
    	try {
    		String imgStr = readInfoStreamToBytes(inputStream);
    
    		sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
    
    		// Base64解码
    		byte[] b = decoder.decodeBuffer(imgStr);
    		for (int i = 0; i < b.length; ++i) {
    			if (b[i] < 0) {// 调整异常数据
    				b[i] += 256;
    			}
    		}
    		
    		BaseResult<String> result = ossV2Helper.uploadFileInputStream(b, originalFilename +".jpg", "jpg");
    		return result.getData();
    	}catch (IOException e){
    		e.printStackTrace();
    	}
    	return null;
    }

     

    展开全文
  • 下面小编就为大家带来一篇浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家带来一篇使用JavaScript获取Request中参数的值方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面小编就为大家分享一篇基于从request获取各种路径的方法介绍,具有很好的参考价值,希望对大家有所帮助
  • * 获取当前请求文件列表 * * @param request * @return */ protected List getMultipartFileList( HttpServletRequest request) { List files = new ArrayList(); try { ...
  • 获取用户请求IP地址 根据IP地址获取mac地址
  • 获取request中文件对象

    千次阅读 2020-01-16 14:13:07
    MultiPartRequestWrapper wrapper=(MultiPartRequestWrapper)request; File[] file=wrapper.getFiles("fileName"); byte[] bytes=new byte[(int)file[0].length()]; InputStream inputStrea...
  • 从Request中获取json格式数据

    千次阅读 2020-11-11 10:16:14
    从Request中获取json格式数据 前端请求头的数据格式: Content-Type: application/json;charset=UTF-8 import java.io.IOException; import javax.servlet.http.HttpServletRequest; import ...
  • 按理,Form提交的数据,无论是application/x-www-form-urlencoded还是multipart/form-data(有附件时),都可在服务端通过Request.Form["name"]和Request.Files["name"]获取到参数和上传的文件
  • java从request中获取GET和POST请求参数

    千次阅读 2020-11-17 14:52:44
    一 、获取请求方式 request.getMethod(); get和post都可用, 二 、获取请求类型 request.getContentType(); get和post都可用,示例值:application/json ,multipart/form-data, application/xml等 三 、获取所有...
  • Python request urllib 获取远程文件大小 有两个方法 requests库 import urllib import requests url=r'https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2020.exe' download=requests.get(url) print(download....
  • Httpservletrequest获取上传文件

    千次阅读 2021-04-12 14:52:29
    servlet3.0以上才能用 servlet3.0以上才能用 servlet3.0以上才能用 servlet3.0如果使用commons-fileupload...//获取上传文件对象 fileName = pohto.getSubmittedFileName();//获取上传文件的文件名 pohto.wr...
  • 环境:vs2019、.net 4.6。 WinForm窗体程序使用CefSharp获取加载后的资源、截取request参数、拦截response数据、注入jquery文件和js代码。有问题可联系q369628105
  • 前一个地方使用的是WebUploader开源框架来上传的,后一个地方是使用的Pdf.js开源框架保存正文的实现文件上传,项目的Controller层使用的是springmvc,并且在springmvc.xml配置了文件上传解析器: <bean id=...
  • request中获取参数的四种通用方法

    千次阅读 2020-06-30 18:53:39
    @WebServlet("/RequestDemo6") public class RequestDemo6 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...
  • flask中request对象以及文件上传详解

    千次阅读 2019-03-21 11:37:38
    request获取请求参数: from flask import request 与Django不同的是,flask是不需要将request对象作为第一个参数传入视图函数,他的request对象是来自于flask,是一个全局对象,我们只需导入即可使用,request对象...
  • 使用Springboot的上传文件的时候,出现了一个问题 : FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload fileUpload = new ServletFileUpload(factory); //设置所上传文件的大小 ...
  • Python 中request数据的获取

    千次阅读 2021-04-27 01:12:17
    @app.route('/users', methods=['GET', '..."print(request.data)//同:request.get_data()print(request.json)如何获取request的参数在于客户端请求头Headers参数:Content-Type的设置以及传参的方式一、Conte...
  • 普通java类 获取Request

    2011-11-28 17:08:58
    普通java类 获取Request
  • 场景描述:使用springboot上传文件到服务器,但是需要将文件路径返回给前台。项目使用的是用虚拟路径配置返回形式如下: ... 测试环境:springboot 2.0.3+jdk1.8+tomcat 8.0 正式环境:spr...
  • HttpServletRequest中获取文件输入流

    千次阅读 2019-12-11 10:56:38
    HttpServletRequest中获取文件输入流 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart....
  • Java的request实现文件上传功能

    千次阅读 2022-04-13 12:54:54
    java文件上传(解析request流) 问题:JavaWeb实现文件上传的方式有哪些? JAVA+HttpServletRequest文件上传 Java后端 实现基本HttpRequest 上传文件 <!DOCTYPE ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 782,931
精华内容 313,172
关键字:

从request中获取文件