기본적으로 사용자가 업로드 한 파일의 테이블 인 내 GWT & App Engine 애플리케이션에 대한 페이지가 있습니다. 여기 Firefox의 Google AppEngine Blobstore에서 파일을 다운로드 할 때 파일 이름이 불완전한 이유는 무엇입니까?
가 블롭을 제공 BlobServiceImpl의의 doGet 함수의 마지막 부분 일 때 상기 사용자 요청 : 코드는 상기 엔티티의 메타 데이터로부터 파일명을 취득에서, HttpServletResponse를 상기 파일 이름을 설정
// got the entity already
filename = (String) entity.getProperty("filename");
resp.addHeader("Content-Disposition", "filename=" + filename);
blobstoreService.serve(blobKey, resp);
및 실제 블롭을 제공하십시오.
내가 겪고있는 문제는 파일 이름에 공백이있는 파일의 경우 첫 번째 단어에만 파일 이름이 설정된다는 점입니다. 공백 이후는 모두 제외됩니다. "My Amazing File.xls"라는 파일이 "My"로 저장되므로 상당히 성가시다.
아마도 문자 인코딩과 관련이 있을까요? 이상하게도 다른 브라우저에서 잘 작동합니다. 돕는
감사합니다 :)
이미 String.replace ("", "% 20")를 시도했습니다. % 20은 Chrome의 공백으로 다시 변경되지만 firefox에서는 파일 이름이 각 공백 대신 % 20으로 설정됩니다! – slugmandrew
또한 URLEncoder.encode (파일 이름, "UTF-8")를 시도했지만 공백을 "+"기호로 바꿉니다./ – slugmandrew
잘 알려진 FF 문제 (예 : https://www.google.com/ 검색? q = firefox + 다운로드 + 공백 + in + 파일 이름). 파일 이름 매개 변수를 큰 따옴표로 둘러싼 것은 분명히 해결됩니다 (예 : https://support.mozilla.org/en-US/questions/724438). –