2012-07-20 4 views
3

사용자가 텍스트를 입력하고 제출하여 서버에서 파일로 저장하고 액세스 할 수있는 사이트를 구축 중입니다. 불행히도, 나는 입력 된 텍스트를 어떻게 받아 들여 파일로 저장할 것인지 잘 모르겠습니다.텍스트 입력을 HTML 및 장고에 파일로 저장하는 방법

누구든지 올바른 방향으로이 작업을 수행 할 수있는 방법이나 세부 단계에 대해 알려줄 수 있습니까? 선제 공격은 명백한 Google 결과를 놓친 경우 사과합니다. 장고에 대해 다소 익숙하기 때문에 우연히 도움이되는 자료를 우연히 발견했을 수도 있습니다. 당신은 ContentFile 찾고있는

class Upload(models.Model): 
    title = models.CharField(max_length=50) 
    fileUpload = models.FileField(upload_to='file_uploads') 
    userID = models.ForeignKey(User) 
    task = models.ForeignKey(Task) 
    uploadTime = models.DateTimeField(auto_now_add=True) 

    def __unicode__(self): 
     return self.title 
+0

장고 양식이나 모델폼에 익숙합니까? – machaku

+0

나는 다소 친숙하다. 내가 파일을 업로드하도록 설정 했어. – twoxmachine

답변

2

:

여기
<form name="myWebForm" id="submissionCode_codeEditor" action="uploadFile/" method="post" enctype="multipart/form-data"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="500" /> 
    <input type="text" name="title" placeholder="File Name"/> 
    <input type="hidden" name="taskID" value={{ taskID }} /> 
    <input type="submit" value="Submit This Code" /> 
</form> 

는 관련 장고 모델 :

여기, 파일 업로드 양식에서 복사 대부분 양식 관련 HTML입니다. 리터럴 파일 대신 텍스트 문자열로 인스턴스화하는 Django File 하위 클래스입니다. 그런 다음 ContentFileFileField에 저장할 수 있습니다. 이름 함량이 모든

from django.core.files.base import ContentFile 

content = ContentFile(some_text) 
upload_instance.fileUpload.save('/path/to/where/file/should/save.txt', content) 
upload_instance.save() 
+0

고맙습니다. 나는 지금 당장 이것을 시도 할 것이다! – twoxmachine

+0

나는 조금 붙어있다. 입력 된 문자열을 ContentFile에 어떻게 연결합니까? 귀하의 예제에서 "some_text"인수와 내 텍스트 영역에 있어야하는 일부 html 속성 사이에 약간의 링크가 있다고 상상해보십시오. 아니면 장고가 무료로 그 기능을 제공하기 때문에 이런 것들을 참조 할 필요가 없습니까? – twoxmachine

+0

정보가 폼에서 오는 경우'some_text'는'request.POST [ 'my_text_field_name']'와 같은 형태 일 것입니다. 실제로 파일 시스템에 저장하기 전에 사용자가 제출 한 것을 위생 처리해야합니다. –

0

먼저 명령을 사용하여 미디어 폴더에 파일을 생성, 내가 가정하고 사용자가 게시 된 텍스트

from app.models import Upload 
from django.conf import settings 
content = request.GET("content") 
file_object = open("%s/%s"%(settings.MEDIA_ROOT, filename),w) #Take file name as hash of content posted and username so that no class 
upload = Upload(title=title, fileUpload=filename,user_id=request.user.id) 

귀하의 파일을 업로드하고 설정

에서 MEDIA_URL를 사용하여 acceseed 할 수있다
+0

Chris Pratt의 답변에 추가 할 내용입니까? 또는이 방법이 대안입니까? – twoxmachine

+0

chris 방법은 파일을 업로드하는 것과 다릅니다. 나는 당신의 모델 enteries를 업데이트하는 것을 고려했다. –

관련 문제