javax.servlet.http.Part#getInputStream()源码实例Demo

下面列出了javax.servlet.http.Part#getInputStream() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openemm   文件: OneClickUnsubscription.java
private static final boolean isCorrectParameterValue(final Part part) throws IOException {
	try(final InputStreamReader reader = new InputStreamReader(part.getInputStream())) {
		try(final BufferedReader in = new BufferedReader(reader)) {
			// Check if "List-Unsubscribe" contains "One-Click"
			if(!UNSUBSCRIBE_PARAMTER_VALUE.equals(in.readLine())) {
				if(LOGGER.isInfoEnabled()) {
					LOGGER.info("Content of multipart parameters does not denote One-Click unsubscription");
				}
				
				return false;
			}
			
			// Check if "List-Unsubscribe" does not contain more lines
			if(in.readLine() != null) {
				if(LOGGER.isInfoEnabled()) {
					LOGGER.info("Content of multipart parameters does not denote One-Click unsubscription");
				}
				
				return false;
			}
			
			return true;
		}
	}
	
}
 
源代码2 项目: requests   文件: MockMultiPartServlet.java
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    request.setAttribute(Request.__MULTIPART_CONFIG_ELEMENT, MULTI_PART_CONFIG);

    Collection<Part> parts = request.getParts();

    response.setContentType("text/plain");
    response.setCharacterEncoding("UTF-8");
    response.setStatus(HttpServletResponse.SC_OK);
    OutputStream out = response.getOutputStream();
    for (Part part : parts) {
        out.write(part.getName().getBytes(StandardCharsets.UTF_8));
        out.write('\n');
        if (part.getContentType() != null) {
            out.write(part.getContentType().getBytes(StandardCharsets.UTF_8));
            out.write('\n');
        }
        try (InputStream in = part.getInputStream()) {
            InputStreams.transferTo(in, out);
        }
        out.write('\n');
    }
}
 
@Test
public void sendPart_openInputStreamFailed(@Mocked Part part)
    throws IOException, InterruptedException, ExecutionException {
  IOException ioException = new IOException("forbid open stream");
  new Expectations() {
    {
      part.getInputStream();
      result = ioException;
    }
  };

  CompletableFuture<Void> future = response.sendPart(part);

  expectedException.expect(ExecutionException.class);
  expectedException.expectCause(Matchers.sameInstance(ioException));

  future.get();
}
 
源代码4 项目: mealOrdering   文件: ModifyFoodInfoAction.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
	
	Part image = request.getPart("image");
	
	InputStream imageInputStream = null;
	if(image.getSize() != 0)
		imageInputStream = image.getInputStream();
	
	SellerService service = new SellerServiceImpl();
	boolean success = service.modifyFoodInfo(request, imageInputStream);
	
	if(success){
		response.sendRedirect(request.getContextPath() + "/pages/profiles/seller_behind.jsp");	
	}else{
		response.setCharacterEncoding("utf-8");
		response.getWriter().print("修改失败!请稍后再试...");
	}
}
 
源代码5 项目: sepia-assist-server   文件: SdkEndpoint.java
/**
 * Receive a file with proper service data.
 * @param req - request
 * @param reqParams - request parameters from form body
 * @param userId - ID of user
 * @throws IOException 
 * @throws ServletException 
 * @return file name
 */
private static String receiveServiceFile(Request req, RequestParameters reqParams, String userId) throws IOException, ServletException{
	Part filePart = req.raw().getPart(UPLOAD_FILE_KEY);		//getPart needs to use same "name" as input field in form
       String fileName = getFileName(filePart);
       
       //Class file
       if (fileName.endsWith(".class")){
       	//Get right folder and make sure it exists
       	File uploadDir = new File(ConfigServices.getCustomServicesBaseFolder() + userId);
           uploadDir.mkdirs();

           //Path tempFile = Files.createTempFile(uploadDir.toPath(), "", "");
           Path tempFile = Paths.get(uploadDir.toString(), fileName);
           Debugger.println("upload-service - Downloading file to: " + uploadDir.getPath(), 3);

           try (InputStream input = filePart.getInputStream()){
           	//Simply store file
               Files.copy(input, tempFile, StandardCopyOption.REPLACE_EXISTING);
           }
           Debugger.println("upload-service - File '" + fileName + "' stored.", 3);
       
       //Java file
       }else if (fileName.endsWith(".java")){
       	//Get source code
       	String sourceCode;
           try (InputStream input = filePart.getInputStream()){
       		sourceCode = FilesAndStreams.getStringFromStream(input, StandardCharsets.UTF_8, "\n");
       	}
           String classNameSimple = fileName.replace(".java", "");
           
       	//Compile code (or throw exception)
           compileServiceSourceCode(userId, classNameSimple, sourceCode);
       	
       //Wrong or not supported file
       }else{
       	throw new RuntimeException("File '" + fileName + "' is NOT A VALID (or supported) SERVICE FILE!");
       }
       
       return fileName;
}
 
源代码6 项目: bidder   文件: WebCampaign.java
public String multiPart(Request baseRequest, HttpServletRequest request, MultipartConfigElement config)
		throws Exception {

	HttpSession session = request.getSession(false);
	String user = (String) session.getAttribute("user");

	baseRequest.setAttribute(Request.__MULTIPART_CONFIG_ELEMENT, config);
	Collection<Part> parts = request.getParts();
	for (Part part : parts) {
		System.out.println("" + part.getName());
	}

	Part filePart = request.getPart("file");

	InputStream imageStream = filePart.getInputStream();
	byte[] resultBuff = new byte[0];
	byte[] buff = new byte[1024];
	int k = -1;
	while ((k = imageStream.read(buff, 0, buff.length)) > -1) {
		byte[] tbuff = new byte[resultBuff.length + k]; // temp buffer size
														// = bytes already
														// read + bytes last
														// read
		System.arraycopy(resultBuff, 0, tbuff, 0, resultBuff.length); // copy
																		// previous
																		// bytes
		System.arraycopy(buff, 0, tbuff, resultBuff.length, k); // copy
																// current
																// lot
		resultBuff = tbuff; // call the temp buffer as your result buff
	}

	Map response = new HashMap();
	return getString(response);

}
 
源代码7 项目: yacy_grid_mcp   文件: RemoteAccess.java
public static Map<String, byte[]> getPostMap(HttpServletRequest request) throws IOException {
    Map<String, byte[]> map = new HashMap<>();
    Map<String, String[]> pm = request.getParameterMap();
    if (pm != null && pm.size() > 0) {
        for (Map.Entry<String, String[]> entry: pm.entrySet()) {
            String[] v = entry.getValue();
            if (v != null && v.length > 0) map.put(entry.getKey(), v[0].getBytes(StandardCharsets.UTF_8));
        }
    } else try {
        request.setAttribute("org.eclipse.jetty.multipartConfig", multipartConfigElement); // without that we get a IllegalStateException in getParts()
        final byte[] b = new byte[1024];
        for (Part part: request.getParts()) {
            String name = part.getName();
            InputStream is = part.getInputStream();
            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int c;
            try {while ((c = is.read(b, 0, b.length)) > 0) {
                baos.write(b, 0, c);
            }} finally {is.close();}
            map.put(name, baos.toByteArray());
        }
    } catch (IOException | ServletException | IllegalStateException e) {
        Data.logger.debug("Parsing of POST multipart failed", e);
        throw new IOException(e.getMessage());
    }
    return map;
}
 
源代码8 项目: fenixedu-cms   文件: PostResource.java
@Atomic(mode = TxMode.WRITE)
public void createFileFromRequest(Post post, Part part) throws IOException {
    AdminPosts.ensureCanEditPost(post);
    GroupBasedFile groupBasedFile = new GroupBasedFile(part.getName(), part.getName(),
            part.getInputStream(), Group.logged());

    PostFile postFile = new PostFile(post, groupBasedFile, false, 0);
    post.addFiles(postFile);
}
 
源代码9 项目: qpid-broker-j   文件: RestServlet.java
@SuppressWarnings("unchecked")
private <T> T parse(Class<T> type) throws IOException, ServletException
{
    T providedObject;
    final ObjectMapper mapper = new ObjectMapper();

    if (_headers.containsKey("Content-Type") && _request.getHeader("Content-Type")
                                                        .startsWith("multipart/form-data"))
    {
        Map<String, Object> items = new LinkedHashMap<>();
        Map<String, String> fileUploads = new HashMap<>();
        Collection<Part> parts = _request.getParts();
        for (Part part : parts)
        {
            if ("data".equals(part.getName()) && "application/json".equals(part.getContentType()))
            {
                items = mapper.readValue(part.getInputStream(), LinkedHashMap.class);
            }
            else
            {
                byte[] data = new byte[(int) part.getSize()];
                try (InputStream inputStream = part.getInputStream())
                {
                    inputStream.read(data);
                }
                fileUploads.put(part.getName(), DataUrlUtils.getDataUrlForBytes(data));
            }
        }
        items.putAll(fileUploads);

        providedObject = (T) items;
    }
    else
    {
        providedObject = mapper.readValue(_request.getInputStream(), type);
    }
    return providedObject;
}
 
源代码10 项目: BotLibre   文件: AvatarImportServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	LoginBean loginBean = getLoginBean(request, response);
	if (loginBean == null) {
		httpSessionTimeout(request, response);
		return;
	}
	AvatarBean bean = loginBean.getBean(AvatarBean.class);
	try {
		String postToken = (String)request.getParameter("postToken");
		loginBean.verifyPostToken(postToken);
		byte[] bytes = null;
		Collection<Part> files = request.getParts();
		int count = 0;
		for (Part filePart : files) {
			if (!filePart.getName().equals("file")) {
				continue;
			}
			if (filePart != null) {
				InputStream stream = filePart.getInputStream();
				int max = Site.MAX_UPLOAD_SIZE * 2;
				if (loginBean.isSuper()) {
					max = max * 10;
				}
				bytes = BotBean.loadImageFile(stream, true, max);
			}
			if ((bytes == null) || (bytes.length == 0)) {
				continue;
			}
			bean.importAvatar(bytes);
			count++;
		}
		if (count == 0) {
			throw new BotException("Please select the avatar files to import");
		}
		response.sendRedirect("avatar?id=" + bean.getInstanceId());
	} catch (Throwable failed) {
		loginBean.error(failed);
		response.sendRedirect("browse-avatar.jsp");
	}
}
 
源代码11 项目: servicecomb-java-chassis   文件: CodeFirstJaxrs.java
@Path("/upload2")
@POST
@Produces(MediaType.TEXT_PLAIN)
public String fileUpload2(@FormParam("file1") Part file1, @FormParam("message") String message) throws IOException {
  try (InputStream is1 = file1.getInputStream()) {
    String content1 = IOUtils.toString(is1, StandardCharsets.UTF_8);
    return String.format("%s:%s:%s:%s",
        file1.getSubmittedFileName(),
        file1.getContentType(),
        content1,
        message);
  }
}
 
源代码12 项目: BotLibre   文件: ImportTranslationsServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	LoginBean loginBean = getLoginBean(request, response);
	if (loginBean == null) {
		httpSessionTimeout(request, response);
		return;
	}
	try {
		String postToken = (String)request.getParameter("postToken");
		loginBean.verifyPostToken(postToken);
		Collection<Part> files = request.getParts();
		int count = 0;
		for (Part filePart : files) {
			if (!filePart.getName().equals("file")) {
				continue;
			}
			if (filePart != null) {
				InputStream stream = filePart.getInputStream();
				loginBean.importTranslations(stream);
				count++;
			}
		}
		if (count == 0) {
			throw new BotException("Please select the XML file");
		}
	} catch (Throwable failed) {
		loginBean.error(failed);
	}
	response.sendRedirect("translation.jsp");		
}
 
@Test
public void normal() throws IOException {
  Response response = handler.handle("index.html");
  Part part = response.getResult();

  try (InputStream is = part.getInputStream()) {
    Assert.assertTrue(IOUtils.toString(is, StandardCharsets.UTF_8).endsWith("<html></html>"));
  }
  Assert.assertEquals("text/html", part.getContentType());
  Assert.assertEquals("text/html", response.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE));
  Assert.assertEquals("inline", response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION));
}
 
源代码14 项目: flow   文件: StreamReceiverHandler.java
private boolean handleStream(VaadinSession session,
        StreamReceiver streamReceiver, StateNode owner, Part part)
        throws IOException {
    String name = part.getSubmittedFileName();
    InputStream stream = part.getInputStream();
    try {
        return handleFileUploadValidationAndData(session, stream,
                streamReceiver, name, part.getContentType(), part.getSize(),
                owner);
    } catch (UploadException e) {
        session.getErrorHandler().error(new ErrorEvent(e));
    }
    return false;
}
 
private void testViewSwaggerById(String schemaId, SchemaFormat format) throws IOException {
  Response response = inspector.getSchemaContentById(schemaId, format, false);

  Part part = response.getResult();
  Assert.assertEquals(schemaId + ".yaml", part.getSubmittedFileName());
  Assert.assertEquals("inline", response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION));
  Assert.assertEquals(MediaType.TEXT_HTML, response.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE));

  try (InputStream is = part.getInputStream()) {
    Assert.assertEquals(schemas.get(schemaId), IOUtils.toString(is, StandardCharsets.UTF_8));
  }
}
 
@Test
public void getStaticResource() throws IOException {
  Response response = inspector.getStaticResource("index.html");

  Part part = response.getResult();
  Assert.assertEquals("inline", response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION));
  Assert.assertEquals(MediaType.TEXT_HTML, response.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE));

  try (InputStream is = part.getInputStream()) {
    Assert.assertTrue(IOUtils.toString(is, StandardCharsets.UTF_8).endsWith("</html>"));
  }
}
 
private void testViewHtmlById(String schemaId) throws IOException {
  Response response = inspector.getSchemaContentById(schemaId, SchemaFormat.HTML, false);

  Part part = response.getResult();
  Assert.assertEquals(schemaId + ".html", part.getSubmittedFileName());
  Assert.assertEquals("inline", response.getHeaders().getFirst(HttpHeaders.CONTENT_DISPOSITION));
  Assert.assertEquals(MediaType.TEXT_HTML, response.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE));

  try (InputStream is = part.getInputStream()) {
    Assert.assertTrue(IOUtils.toString(is, StandardCharsets.UTF_8).endsWith("</html>"));
  }
}
 
源代码18 项目: BotLibre   文件: GraphicImportServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	LoginBean loginBean = getLoginBean(request, response);
	if (loginBean == null) {
		httpSessionTimeout(request, response);
		return;
	}
	GraphicBean bean = loginBean.getBean(GraphicBean.class);
	try {
		String postToken = (String)request.getParameter("postToken");
		loginBean.verifyPostToken(postToken);
		byte[] bytes = null;
		Collection<Part> files = request.getParts();
		int count = 0;
		for (Part filePart : files) {
			if (!filePart.getName().equals("file")) {
				continue;
			}
			if (filePart != null) {
				InputStream stream = filePart.getInputStream();
				int max = Site.MAX_UPLOAD_SIZE * 2;
				if (loginBean.isSuper()) {
					max = max * 10;
				}
				bytes = BotBean.loadImageFile(stream, true, max);
			}
			if ((bytes == null) || (bytes.length == 0)) {
				continue;
			}
			bean.importGraphic(bytes);
			count++;
		}
		if (count == 0) {
			throw new BotException("Please select the graphic files to import");
		}
		response.sendRedirect("graphic?id=" + bean.getInstanceId());
	} catch (Throwable failed) {
		loginBean.error(failed);
		response.sendRedirect("browse-graphic.jsp");
	}
}
 
源代码19 项目: portals-pluto   文件: MultipartPortlet.java
@ActionMethod(portletName = "MultipartPortlet")
public void handleDialog(ActionRequest req, ActionResponse resp) throws IOException, PortletException {
   List<String> lines = new ArrayList<String>();
   req.getPortletSession().setAttribute("lines", lines);

   lines.add("handling dialog");
   StringBuilder txt = new StringBuilder(128);

   String clr = req.getActionParameters().getValue("color");
   txt.append("Color: ").append(clr);
   lines.add(txt.toString());
   logger.debug(txt.toString());

   resp.getRenderParameters().setValue("color", clr);

   txt.setLength(0);
   Part part = null;
   try {
      part = req.getPart("file");
   } catch (Throwable t) {}
   
   if ((part != null) && (part.getSubmittedFileName() != null) && 
         (part.getSubmittedFileName().length() > 0)) {
      txt.append("Uploaded file name: ").append(part.getSubmittedFileName());
      txt.append(", part name: ").append(part.getName());
      txt.append(", size: ").append(part.getSize());
      txt.append(", content type: ").append(part.getContentType());
      lines.add(txt.toString());
      logger.debug(txt.toString());
      txt.setLength(0);
      txt.append("Headers: ");
      String sep = "";
      for (String hdrname : part.getHeaderNames()) {
         txt.append(sep).append(hdrname).append("=").append(part.getHeaders(hdrname));
         sep = ", ";
      }
      lines.add(txt.toString());
      logger.debug(txt.toString());

      // Store the file in a temporary location in the webapp where it can be served. 

      try {
         String fn = part.getSubmittedFileName();
         String ct = part.getContentType();
         
         if (ct != null && (ct.equals("text/plain") || ct.matches("image/(?:png|gif|jpg|jpeg)"))) {
            
            String ext = ct.replaceAll("\\w+/", "");
            lines.add("determined extension " + ext + " from content type " + ct);
            File img = getFile();
            if (img.exists()) {
               lines.add("deleting existing temp file: " + img.getCanonicalPath());
               img.delete();
            }
            InputStream is = part.getInputStream();
            Files.copy(is, img.toPath(), StandardCopyOption.REPLACE_EXISTING);
            
         } else {
            lines.add("Bad file type. Must be plain text or image (gif, jpeg, png).");
         }

         resp.getRenderParameters().setValue("fn", fn);
         resp.getRenderParameters().setValue("ct", ct);

      } catch (Exception e) {
         lines.add("Exception doing I/O: " + e.toString());
         
         txt.setLength(0);
         txt.append("Problem getting temp file: " + e.getMessage() + "\n");
         StringWriter sw = new StringWriter();
         PrintWriter pw = new PrintWriter(sw);
         e.printStackTrace(pw);
         pw.flush();
         txt.append(sw.toString());
         logger.warn(txt.toString());
      }
   } else {
      lines.add("file part was null");
   }

}
 
源代码20 项目: OnlineShoppingSystem   文件: SellerServiceImpl.java
public boolean addGoodsImage(HttpServletRequest request, int goodsId) {
    boolean flag = false;
    int count = -1;
    ArrayList<Part> images;
    try {
        images = (ArrayList<Part>) request.getParts();
        count = images.size();
        for (Part image : images) {
            if (image.getContentType() == null) {
                continue;
            }
            // System.out.println(image.getContentType());
            InputStream imageInputStream = null;

            if (image != null && image.getSize() != 0) {
                try {
                    imageInputStream = image.getInputStream();

                    if (imageInputStream != null) {
                        String imagedir = request.getServletContext()
                                .getInitParameter("imagedir")
                                + File.separator;
                        // 图片名格式:20161123204206613375.jpg。
                        // 代表 2016-11-23 20:42:06.613 + 3 位 0 - 9 间随机数字
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                        StringBuilder imageName = new StringBuilder(
                                dateFormat.format(new Date()));
                        Random random = new Random();
                        for (int i = 0; i < 3; ++i) {
                            imageName.append(random.nextInt(10));
                        }
                        imageName.append(".jpg");

                        String targetFile = imagedir + imageName;
                        try {
                            FileUtils.copyInputStreamToFile(imageInputStream,
                                    new File(targetFile));
                            count--;

                            dao.addGoodsImage("/images/goods/" + imageName, goodsId);   // 更新数据库

                            // System.out.println(imagedir);
                            // System.out.println(imageName);
                            // System.out.println(count);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                } catch (IOException e1) {
                    e1.printStackTrace();
                } finally {
                    imageInputStream.close();
                }
            }
        }
    } catch (IOException | ServletException e3) {
        e3.printStackTrace();
    }
    if (count == 0) {
        flag = true;
    } else {
        flag = false;
    }

    return flag;
}