475dfa88cb8c040328d427a60357f8e32b707c08.svn-base 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package cn.com.goldenwater.dcproj.service.impl.system;
  2. import org.springframework.util.Assert;
  3. import org.springframework.util.FileCopyUtils;
  4. import org.springframework.web.multipart.MultipartFile;
  5. import java.io.ByteArrayInputStream;
  6. import java.io.File;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. public class MockMultipartFile implements MultipartFile {
  10. private final String name;
  11. private String originalFilename;
  12. private String contentType;
  13. private final byte[] content;
  14. public MockMultipartFile(String name, byte[] content) {
  15. this(name, "", (String)null, (byte[])content);
  16. }
  17. public MockMultipartFile(String name, InputStream contentStream) throws IOException {
  18. this(name, "", (String)null, (byte[])FileCopyUtils.copyToByteArray(contentStream));
  19. }
  20. public MockMultipartFile(String name, String originalFilename, String contentType, byte[] content) {
  21. Assert.hasLength(name, "Name must not be null");
  22. this.name = name;
  23. this.originalFilename = originalFilename != null ? originalFilename : "";
  24. this.contentType = contentType;
  25. this.content = content != null ? content : new byte[0];
  26. }
  27. public MockMultipartFile(String name, String originalFilename, String contentType, InputStream contentStream) throws IOException {
  28. this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream));
  29. }
  30. @Override
  31. public String getName() {
  32. return this.name;
  33. }
  34. @Override
  35. public String getOriginalFilename() {
  36. return this.originalFilename;
  37. }
  38. @Override
  39. public String getContentType() {
  40. return this.contentType;
  41. }
  42. @Override
  43. public boolean isEmpty() {
  44. return this.content.length == 0;
  45. }
  46. @Override
  47. public long getSize() {
  48. return (long)this.content.length;
  49. }
  50. @Override
  51. public byte[] getBytes() throws IOException {
  52. return this.content;
  53. }
  54. @Override
  55. public InputStream getInputStream() throws IOException {
  56. return new ByteArrayInputStream(this.content);
  57. }
  58. @Override
  59. public void transferTo(File dest) throws IOException, IllegalStateException {
  60. FileCopyUtils.copy(this.content, dest);
  61. }
  62. }