2012-08-23 2 views
2

HTML은 양식을 사용하여 웹 서버에 데이터를 보냅니다. 데이터는 url 매개 변수에 포함되거나 HTML 요청 본문에 포함될 수 있습니다. 그러나 파일의 경우, 나는 그것이 어떻게 작동하는지 모른다. 웹 및 데스크톱 응용 프로그램에서 파일을 업로드하는 것과 약간의 차이가 있기 때문에이 사실을 알고 싶습니다.HTML 파일 업로드는 어떻게 작동합니까?

데스크톱 응용 프로그램은 일반적으로 사용자가 파일의 로캘 경로를 입력 할 수있는 텍스트 상자를 제공합니다. 그러나 웹 응용 프로그램의 경우 텍스트 상자는 일반적으로 읽기 전용입니다. 파일이 찾아보기 버튼으로 선택되면 파일 경로가 표시됩니다. 데스크톱과 웹 간의 디자인 문제일까요?

답변

3

질문이 약간 명확하지 않지만 웹 응용 프로그램 (또는 HTML 양식)에 대한 중요한 측면 중 하나는 샌드 박스가되어 로컬 파일에 직접 액세스 할 수 없다는 것입니다. 따라서 파일 업로드 선택 도구는 파일 이름을 직접 입력 할 수 없지만 OS (또는 브라우저)에서 제공하는 파일을 통한 선택 만 UI를 선택합니다 (응용 프로그램이나 페이지에서 혼란 스러울 수 없음).

일단 사용자가 파일을 선택하면 해당 페이지는 페이지에 액세스 할 수 있지만 선택을 할 수 없습니다 (또는 은밀하게).

최근 경향은 데스크톱 앱을 동일한 방식으로 잠그는 것입니다. 예를 들어 Apple의 샌드 박스 제한을 참조하십시오.이 제한은 사용자 개입없이 앱이 임의의 파일을 열 수 없도록합니다.

+1

감사합니다. @Thilo. JaroScript는 HTML5 이전에 로컬 파일에 액세스 할 수 없지만 입력 파일 이름은 단지 "String"입니다. JavaScript로 조작 할 수없는 이유는 무엇입니까? 나는 또한 "사용자가 페이지를 액세스 할 수있는 파일을 선택하면"혼동을 느낍니다. 무슨 뜻이에요? 선택 후에 페이지에서 파일을 조작 할 수 있습니까? – wqfeng

+2

JavaScript *는 HTML5 이후부터 로컬 파일에 액세스 할 수 있지만 사용자가 명시 적으로 선택한 파일 만 액세스 할 수 있습니다. 내가 말하고 싶은 것은 앱이 원하는 디스크의 파일에 직접 액세스 할 수있는 방법이 없다는 것이다. 반면에 다른 양식 필드를 사용하면 서버로 보내기 전에 사용자 입력을 무시할 수있다. – Thilo

0

데스크톱과 웹 간의 디자인 문제일까요?

파일 업로드 양식의 구현은 데스크톱이든 웹이든 최종 결과에 크게 중요하지 않습니다. 데스크톱 앱과 웹 컨트롤 모두 경로 문자열이나 완전한 파일 탐색기를 사용할 수 있지만 데스크톱 앱의 구현이 달라질 수 있습니다. 유일한 다른 차이점은 대상입니다. 데스크톱 응용 프로그램은 파일을 메모리에서 구문 분석하여 어떻게 든 렌더링하는 반면 웹 응용 프로그램은 거의 항상 서버에 업로드하는 경향이 있습니다 (변경 될 수 있습니다 : HTML5 file API 참조). 그것.

+0

웹 앱이 임의의 경로 문자열을 사용할 수 있다고 생각하지 않습니다. 모든 파일 선택은 사용자가 "검사"해야합니다. – Thilo

+0

@Thilo Lynx는 내가 잘 할 수있게 해준다. –

+0

Lynx에서는 파일 경로를 입력 할 수 있습니다. 페이지에서 Javascript가 실행되는 것을 허용하지 않습니다 (해당 경로가 전혀 지원되지 않는 경우). 경로를 변경하거나 자체 경로를 제공하십시오. – Thilo

관련 문제