크롬에는 매우 유용한 파일 시스템 API가 있습니다. 내가 뭘 하려는지 그 안에 저장된 파일을 서버에 업로드하는 것입니다. 불행히도, 서버에 파일을 보낼 수있는 유일한 방법은 사용자가 보안 문제로 인해 업로드 할 파일을 명시 적으로 선택하는 양식을 제출하는 것입니다.Google 크롬 파일 시스템에서 서버로 파일 업로드
도움을 주시면 감사하겠습니다. 피터
그래서 나는이 아이디어를 가지고있다. 왜 blob을 FileReader를 사용하여 문자열로 변환 한 다음 요청 본문으로 보내면됩니까?
//entries[] contains a set of file objects
function readerSuccess(entries) {
var i;
for (i=0; i<entries.length; i++)
{
if(entries[i].isFile === true)
{
data=new FormData();
data.append('name',entries[i].fullPath);
//Conversion...
entries[i].file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var dataStr=this.result;
};
reader.readAsText(file);
}, errorHandler);
//Sending...
data.append('file',dataStr);
var oReq = new XMLHttpRequest();
oReq.open("POST", "serv.php", true);
oReq.send(data);
}
else if (entries[i].isDirectory === true)
{
getDirSuccess(entries[i]);
}
}
}
문제는 이제 방울을 별도의 메시지로 보냅니다. 예를 들어 : 요청 URL : BLOB : HTTP %의 3A // localhost를/7492a164-ed62-4834-939c-e6437b52cba8 요청 방법 : 상태 코드를 GET : 200 OK (캐시)
무엇이 질문입니까? 프로그래밍 방식으로 사용자의 (클라이언트) 파일 시스템에서 파일을 선택하고 사용자 개입없이 업로드 할 수 있는지 묻는다면 대답은 "아니오"입니다. –
알 겠어.하지만 사실, Chrome의 File System (Google File System API)을 사용하고 있습니다. 나는 기본적으로 얼룩이 파일 개체가 있습니다. 그리고 나는 그들을 보낼 수 없습니다 – Peter
각'Blob'을'FormData' 객체에'추가 '한 다음 XHR2를 통해'FormData' 객체를 보냅니다. –