gpt4 book ai didi

python - django上传没有模型的文件

转载 作者:太空狗 更新时间:2023-10-29 22:19:16 26 4
gpt4 key购买 nike

我想上传没有模型的文件(文本/图像)(仅使用 View 和模板)。理想情况下,我想读取或写入位置。

我目前的代码如下:

在我的模板/foo/help/UploadFileContent.html 中

<!doctype html>
<html>
<body>
<link rel="stylesheet" href="{{STATIC_URL}}/stylesheets/jquery-ui.css">
<div class="main-content">
<div class="container">


<div class="container">
<div class="row">

<div class="box">
<div class="box-content">
<div class="col-md-12">
<form method="post" id="fileupload" action="/helpsubmitfilecontent/" accept-charset="utf-8" class="fill-up">
{% csrf_token %}
<div class="row">
<div class="col-lg-4">

<ul class="padded separate-sections">
<li>
<input type="text" name="name" id="name" placeholder="Name"/>
</li>

<li>
<textarea name="content" id="content"
placeholder="Help Contents" style="height: 250px;width: 700px"></textarea>
</li>
<li>
<input type="file" name="myfile" id="myfile" />

</li>
</ul>

<div class="form-actions">
<button type="submit" class="btn btn-blue">Submit</button>
</div>

</div>
</div>
</form>

</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

</body>

<script>
$('#fileupload').submit(function(evnt){
if($('#name').val().length <=0){
$('#name').attr('style','border-color:red');
evnt.preventDefault();
}
if($('#content').val().length <=0){
$('#content').attr('style','border-color:red');
evnt.preventDefault();
}
});

</script>
</html>

在我的帮助 View 中:

def fileupload(request):

return responsewrapper('pages/foo/help/UploadFileContent.html', locals(),request)

def submitfilecontent(request):
myhash = dict()
myhash['name'] = request.POST['name'] # works
myhash['filedata'] = request.POST['content'] # works
handle_uploaded_file(request.FILES['myfile']) # error throws up here.
return HttpResponseRedirect("/successupload")

def handle_uploaded_file(f):
destination = open('/home/foo/name.txt', 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()

在对文件数据进行操作时抛出以下错误。

Exception Value:    
"Key 'myfile' not found in <MultiValueDict: {}>"

请指教。理想情况下,我不想使用任何数据库,因为我只想将文本/图像导入静态位置。

最佳答案

你错过了 enctype="multipart/form-data" <form> 中的属性标签。

编辑

handle_uploaded_file 的参数,你称之为 f , 是 UploadedFile 的实例,根据 docs有一个 name属性,因此您大概可以根据名称更改目的地。或者您可以自己查看内容并以这种方式确定。

关于python - django上传没有模型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21882298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com