3

我正在构建一个站点,用户可以在其中输入文本并提交文本,以便可以将其保存为服务器上的文件并进行访问。不幸的是,我不太确定如何获取输入的文本并将其保存为文件。

谁能指出我如何做到这一点或详细说明我必须采取的步骤的正确方向?如果我错过了一个明显的谷歌结果,抢先式道歉。作为 Django 的新手,我可能无意中忽略了有用的资源。

这是相关的 HTML,主要是从文件上传表单复制的表单:

<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>

这是相关的 Django 模型:

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
4

2 回答 2

3

你正在寻找ContentFile. 它是一个 DjangoFile子类,它使用文本字符串而不是文字文件进行实例化。然后,您可以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()
于 2012-07-20T15:37:14.603 回答
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 访问

于 2012-07-20T15:43:26.893 回答