Apple은 iWork 파일을 관리하는 방식을 변경했습니다. 이제 파일은 Apps와 매우 유사한 콘텐츠가 포함 된 번들입니다. 여러 파일을받을 수있는 업로드 양식을 만들어야합니다. 주로 이미지이지만 일부 페이지와 숫자도 있습니다. 삭제 된 파일의 수는 최대 15 개이며 PHP를 사용하여 서버 측에서 정렬됩니다. 그것은 이미 건설되었습니다.iWork Pages 5.2 파일을 업로드하는 방법.
내 질문입니다.
업로드 할 페이지 파일을 어떻게 얻을 수 있습니까? 지금까지 나는 많은 사전 빌드 된 솔루션을 시도했습니다.
저는 처음부터 건물을 짓고 있습니다. "dataTransfer"는 디렉토리를 좋아하지 않습니다. 을 FileReader 그것을보고하지만 난 할 때 다음과 같은
for (var i = 0; i < items.length; ++i) {
var entry = items[i].type;
if (entry == "image/png" || entry.type == "image/jpg" || entry.type == "image/jpeg") {
formData.append("file" + i , items[i]);
} else {
var fileReader = new FileReader();
var binary = fileReader.readAsBinaryString(items[i]);
var blob = new Blob([binary], {type: blob});
formData.append("file" + i , blob);
는 undefined를 반환하고 팝업 다음과 같은 오류 "failed to load resource blob:http://localhost/<RANDOM BLOB STRING HERE>"
을 내가 블롭 서버 측을 디코딩 할 때, 당연히 내가 그렇게 0KB 크기의 파일을 가져 그 절대 가지마.
정말 모든 파일을 서버의 폴더로 가져오고 싶습니다. 파일 당 서버 요청을 비효율적으로 보내야 할지도 모르겠다.
나는 또한 base64 인코딩을 시도하고 또 비슷한 결과를 얻습니다. 나는 또한 XHR.response "blob"메서드도 시도했다. 각각의 경우에 파일을 가져 오지 않거나 손상된 버전이 표시됩니다.
이것을 공격하는 가장 좋은 방법은 무엇입니까?
동의하지만 고통이 있습니다. 업로드 전에 사용자가 압축하는 사용자 워크 플로에 단계를 추가하는 것도 옵션이 아닙니다. 이 파일 서버 측을 얻는 방법이 있어야합니다. –
@GlennHolland 아마도 이것이 전체 디렉토리 (거기에 몇 가지 자바 스크립트 도구가 있음)를 업로드하고 서버에 압축하는 것보다 내부 도구 (보안은 큰 문제가 아님)입니까? – Jason