类org.springframework.http.ContentDisposition源码实例Demo

下面列出了怎么用org.springframework.http.ContentDisposition的API类实例代码及写法,或者点击链接到github查看源代码。

private void parseRequest(HttpServletRequest request) {
	try {
		Collection<Part> parts = request.getParts();
		this.multipartParameterNames = new LinkedHashSet<>(parts.size());
		MultiValueMap<String, MultipartFile> files = new LinkedMultiValueMap<>(parts.size());
		for (Part part : parts) {
			String headerValue = part.getHeader(HttpHeaders.CONTENT_DISPOSITION);
			ContentDisposition disposition = ContentDisposition.parse(headerValue);
			String filename = disposition.getFilename();
			if (filename != null) {
				if (filename.startsWith("=?") && filename.endsWith("?=")) {
					filename = MimeDelegate.decode(filename);
				}
				files.add(part.getName(), new StandardMultipartFile(part, filename));
			}
			else {
				this.multipartParameterNames.add(part.getName());
			}
		}
		setMultipartFiles(files);
	}
	catch (Throwable ex) {
		handleParseFailure(ex);
	}
}
 
private void parseRequest(HttpServletRequest request) {
	try {
		Collection<Part> parts = request.getParts();
		this.multipartParameterNames = new LinkedHashSet<>(parts.size());
		MultiValueMap<String, MultipartFile> files = new LinkedMultiValueMap<>(parts.size());
		for (Part part : parts) {
			String headerValue = part.getHeader(HttpHeaders.CONTENT_DISPOSITION);
			ContentDisposition disposition = ContentDisposition.parse(headerValue);
			String filename = disposition.getFilename();
			if (filename != null) {
				if (filename.startsWith("=?") && filename.endsWith("?=")) {
					filename = MimeDelegate.decode(filename);
				}
				files.add(part.getName(), new StandardMultipartFile(part, filename));
			}
			else {
				this.multipartParameterNames.add(part.getName());
			}
		}
		setMultipartFiles(files);
	}
	catch (Throwable ex) {
		handleParseFailure(ex);
	}
}
 
@Test
public void shouldReadImageResource() throws IOException {
	byte[] body = FileCopyUtils.copyToByteArray(getClass().getResourceAsStream("logo.jpg"));
	MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
	inputMessage.getHeaders().setContentType(MediaType.IMAGE_JPEG);
	inputMessage.getHeaders().setContentDisposition(
			ContentDisposition.builder("attachment").filename("yourlogo.jpg").build());
	Resource actualResource = converter.read(Resource.class, inputMessage);
	assertThat(FileCopyUtils.copyToByteArray(actualResource.getInputStream()), is(body));
	assertEquals("yourlogo.jpg", actualResource.getFilename());
}
 
@Test  // SPR-13443
public void shouldReadInputStreamResource() throws IOException {
	try (InputStream body = getClass().getResourceAsStream("logo.jpg") ) {
		MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
		inputMessage.getHeaders().setContentType(MediaType.IMAGE_JPEG);
		inputMessage.getHeaders().setContentDisposition(
				ContentDisposition.builder("attachment").filename("yourlogo.jpg").build());
		Resource actualResource = converter.read(InputStreamResource.class, inputMessage);
		assertThat(actualResource, instanceOf(InputStreamResource.class));
		assertThat(actualResource.getInputStream(), is(body));
		assertEquals("yourlogo.jpg", actualResource.getFilename());
	}
}
 
@Test
public void shouldReadImageResource() throws IOException {
	byte[] body = FileCopyUtils.copyToByteArray(getClass().getResourceAsStream("logo.jpg"));
	MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
	inputMessage.getHeaders().setContentType(MediaType.IMAGE_JPEG);
	inputMessage.getHeaders().setContentDisposition(
			ContentDisposition.builder("attachment").filename("yourlogo.jpg").build());
	Resource actualResource = converter.read(Resource.class, inputMessage);
	assertThat(FileCopyUtils.copyToByteArray(actualResource.getInputStream()), is(body));
	assertEquals("yourlogo.jpg", actualResource.getFilename());
}
 
@Test  // SPR-13443
public void shouldReadInputStreamResource() throws IOException {
	try (InputStream body = getClass().getResourceAsStream("logo.jpg") ) {
		MockHttpInputMessage inputMessage = new MockHttpInputMessage(body);
		inputMessage.getHeaders().setContentType(MediaType.IMAGE_JPEG);
		inputMessage.getHeaders().setContentDisposition(
				ContentDisposition.builder("attachment").filename("yourlogo.jpg").build());
		Resource actualResource = converter.read(InputStreamResource.class, inputMessage);
		assertThat(actualResource, instanceOf(InputStreamResource.class));
		assertThat(actualResource.getInputStream(), is(body));
		assertEquals("yourlogo.jpg", actualResource.getFilename());
	}
}
 
源代码7 项目: tutorials   文件: ReactiveS3ApplicationLiveTest.java
private void addFileEntity(String name, MultiValueMap<String, Object> body, File file) throws Exception {

        byte[] data = Files.readAllBytes(file.toPath());
        MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
        ContentDisposition contentDispositionHeader = ContentDisposition.builder("form-data")
          .name(name)
          .filename(file.getName())
          .build();
        
        headers.add(HttpHeaders.CONTENT_DISPOSITION, contentDispositionHeader.toString());
        
        HttpEntity<byte[]> fileEntity = new HttpEntity<>(data, headers);
        body.add(name, fileEntity);
    }
 
源代码8 项目: airsonic-advanced   文件: DownloadController.java
@GetMapping
public ResponseEntity<Resource> handleRequest(Principal p,
        @RequestParam Optional<Integer> id,
        @RequestParam(required = false) Integer playlist,
        @RequestParam(required = false) Integer player,
        @RequestParam(required = false, name = "i") List<Integer> indices,
        ServletWebRequest swr) throws Exception {
    User user = securityService.getUserByName(p.getName());
    Player transferPlayer = playerService.getPlayer(swr.getRequest(), swr.getResponse(), false, false);
    String defaultDownloadName = null;
    ResponseDTO response = null;

    Supplier<TransferStatus> statusSupplier = () -> statusService.createDownloadStatus(transferPlayer);

    Consumer<TransferStatus> statusCloser = status -> {
        statusService.removeDownloadStatus(status);
        securityService.updateUserByteCounts(user, 0L, status.getBytesTransferred(), 0L);
        LOG.info("Transferred {} bytes to user: {}, player: {}", status.getBytesTransferred(), user.getUsername(), transferPlayer);
    };

    MediaFile mediaFile = id.map(mediaFileService::getMediaFile).orElse(null);

    if (mediaFile != null) {
        if (!securityService.isFolderAccessAllowed(mediaFile, user.getUsername())) {
            throw new AccessDeniedException("Access to file " + mediaFile.getId() + " is forbidden for user " + user.getUsername());
        }

        if (mediaFile.isFile()) {
            response = prepareResponse(Collections.singletonList(mediaFile), null, statusSupplier, statusCloser, Collections.emptyList());
            defaultDownloadName = mediaFile.getFile().getFileName().toString();
        } else {
            response = prepareResponse(mediaFileService.getChildrenOf(mediaFile, true, false, true), indices,
                    statusSupplier, statusCloser, indices == null ? Collections.singletonList(mediaFile.getCoverArtFile()) : Collections.emptyList());
            defaultDownloadName = FilenameUtils.getBaseName(mediaFile.getPath()) + ".zip";
        }
    } else if (playlist != null) {
        response = prepareResponse(playlistService.getFilesInPlaylist(playlist), indices, statusSupplier, statusCloser, Collections.emptyList());
        defaultDownloadName = playlistService.getPlaylist(playlist).getName() + ".zip";
    } else if (player != null) {
        response = prepareResponse(transferPlayer.getPlayQueue().getFiles(), indices, statusSupplier, statusCloser, Collections.emptyList());
        defaultDownloadName = "download.zip";
    }

    if (swr.checkNotModified(String.valueOf(response.getSize()), response.getChanged())) {
        return null;
    }

    String filename = Optional.ofNullable(response.getProposedName()).orElse(defaultDownloadName);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentDisposition(ContentDisposition.builder("attachment").filename(filename, StandardCharsets.UTF_8).build());
    headers.setContentType(MediaType.parseMediaType(StringUtil.getMimeType(FilenameUtils.getExtension(filename))));
    LOG.info("Downloading '{}' to {}", filename, player);
    return ResponseEntity.ok().headers(headers).body(response.getResource());
}
 
 类所在包
 类方法
 同包方法