2013-11-15 3 views
2

모델 양식을 사용하여 내 모델의 로컬 파일에 대한 링크를 저장하려고합니다.Django : 파일 업로드없이 로컬 파일에 대한 링크 저장

  1. 이 렌더링 된 양식보기
  2. <input type="file">를 통해 파일을 선택 POST
  3. 를 통해 양식을 제출 : 나는 단지 파일의 fullpath에 저장하려면,하지 선택한 파일 자체를 업로드 싶어
  4. 선택한 파일을 업로드하지 말고 파일의 전체 경로를 저장하십시오. 'C : /myuploadedfile.pdf'내 모델에서

내가 지금까지 시도한 것은 form.clean()에서 해킹 된 것입니다.

이러한 요구 사항을 달성하는 방법은 무엇입니까?

+0

가능하지 않은 경우에도 사용자 컴퓨터에 로컬 파일 경로를 저장하는 것이 무엇이 될 수 있습니까? –

+0

우리는 내부 전용 인 당사에서 애플리케이션을 사용합니다. 따라서 파일 경로는 사용자에 대해 평가할 수있는 네트워크 드라이브를 가리 킵니다. –

답변

1

먼저, html/javascript에서 전체 로컬 경로를 가져올 수 없습니다. 이것은 그러한 정보 공개를 막기위한 브라우저 보안 때문입니다. POST에 파일을 제출하면 파일 데이터와 파일 이름을 받게됩니다. Flash, Silverlight, Java 또는 낮은 수준의 액세스를 제공하는 다른 플러그인을 사용하여 정보를 수집 할 수도 있지만 양식 제출보다 훨씬 복잡합니다.

둘째, 파일 이름 만 저장하려고한다고 가정 해보십시오. request.FILES['input_name'].name을보고 파일의 이름을 얻고 TextField에 직접 저장할 수 있습니다.

+0

감사합니다. Tim. 이것은 아마도 첫 번째 단계 일 것입니다. 두 번째 단계는 (1) 로컬 파일에 대한 링크와 (2) 로컬 파일 링크를 제공하기 위해'fileField' /''위젯을 수정하는 것입니다. 나는 이것을위한 "copy-and-paste"해결책이있을 것이라고 생각했다. –

+0

파일을 저장하고 있지 않다면,'FileField'를 사용하지 마십시오. 당신은 장고 양식을 사용할 의무가 없습니다. 자신 만의 html을 작성하고 요구 사항을 충족시키기 위해 응답을 처리 할 수 ​​있습니다. –