나는 서버에 내 우편 압축 파일을 업로드하고 거기에 .txt
및 .jpg
파일을 열려면. 내 컨트롤러에서 내 보관 파일을 성공적으로 가져 와서 ZipEntry
을 통해 각 파일의 이름을 가져옵니다. 이제 열어보고 싶지만 내 파일에 대한 전체 경로를 가져와야합니다.봄 : 업로드 된 zip 파일을 구문 분석하는 방법은 무엇입니까?
내가 그렇게 할 수있는 방법을 발견하지 않았습니다. 어떻게 할 수있는 방법을 제안 해 주시겠습니까?
업데이트
내가 예를 사용하려고은 아래에 제시되었다하지만 난 FileNotFoundException
그래서 내가으로 돌아가 내가 가지고
ZipFile zFile = new ZipFile("trainingDefaultApp.zip");
파일을 열 수 없습니다입니다 내 시작점. Java Spring 애플리케이션에 업로드 양식이 있습니다. 컨트롤러에서 나는 그럼 각 ZipEntry
InputStream is = new ByteArrayInputStream(zip);
ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry = null;
while ((entry = zis.getNextEntry()) != null) {
String entryName = entry.getName();
if (entryName.equals("readme.txt")) {
ZipFile zip = new ZipFile(entry.getName()); // here I had got an exception
이 문서에 따르면 내가 좋아했지만 나에게로 파일 이름 만 전달하는 이상한 도착했다 byte[]
@RequestMapping(method = RequestMethod.POST)
public String create(UploadItem uploadItem, BindingResult bindingResult){
try {
byte[] zip = uploadItem.getFileData().getBytes();
saveFile(zip);
같은 우편 아카이브를 가지고 있었다 당신이 성공적으로 특정 항목에 대해 당신에게 InputStream를 돌려주는 것 파일
무엇을 의미합니까? 성공적으로 열었다 고하셨습니까? 당신은 무엇에 "완전한 길"을 가지고 있지 않습니까? –
내 zip 아카이브가 들어있는 CommonsMultipartFile을 byte []로 열었습니다. 나는 그것을 ZipInputStream으로 변환하고 루프 내 아카이브에있는 각 파일에 대해 ZipEntry를 얻었습니다. 이제이 .txt 파일과 .jpg 파일을 읽고 싶지만 ZipEntry에는이 파일의 이름 만 포함되어 있습니다. 그래서이 파일에 대한 전체 경로가 없으므로 새로운 파일 ("d : /some.txt")로 열 수 없습니다. –