我正在使用浏览按钮将文件上载到django的媒体文件夹中。我需要在本地存储中获取该文件的路径
我正在尝试使用webkit目录将文件夹上载到django中的媒体文件夹中。由于我们无法直接将目录复制到媒体文件夹中(我认为我们在上载文件时会这样做),为此,我尝试使用shutil.copytree()要将目录从本地存储完全复制到媒体中,并拖动各个文件路径并存储在数据库中。为此,shutil.copytree()要求将文件路径作为输入,以及如何从webkitdirectory获取该路径。我尝试上载单个文件……我甚至无法获取文件路径 这是我的表格我正在使用浏览按钮将文件上载到django的媒体文件夹中。我需要在本地存储中获取该文件的路径,django,python-3.x,filesystems,Django,Python 3.x,Filesystems,我正在尝试使用webkit目录将文件夹上载到django中的媒体文件夹中。由于我们无法直接将目录复制到媒体文件夹中(我认为我们在上载文件时会这样做),为此,我尝试使用shutil.copytree()要将目录从本地存储完全复制到媒体中,并拖动各个文件路径并存储在数据库中。为此,shutil.copytree()要求将文件路径作为输入,以及如何从webkitdirectory获取该路径。我尝试上载单个文件……我甚至无法获取文件路径 这是我的表格 你不能那样做。出于安全原因,浏览器无法访问文件系统。
你不能那样做。出于安全原因,浏览器无法访问文件系统。@b但感谢您的澄清,但我如何才能将目录复制到媒体文件夹中,以进一步将文件夹中的所有文件存储在数据库中?如何从客户端(本地)计算机复制目录?正如我前面提到的,你不能。用户只能上载单个文件,但为了简化用户的操作,您可以尝试将
webkitdirectory multiple
添加到文件输入中,允许用户选择目录,但这是一项非标准功能,无法在所有浏览器中使用。请参阅有关此功能的示例和信息。您不能这样做。出于安全原因,浏览器无法访问文件系统。@b但感谢您的澄清,但我如何才能将目录复制到媒体文件夹中,以进一步将文件夹中的所有文件存储在数据库中?如何从客户端(本地)计算机复制目录?正如我前面提到的,你不能。用户只能上载单个文件,但为了简化用户的操作,您可以尝试将webkitdirectory multiple
添加到文件输入中,允许用户选择目录,但这是一项非标准功能,无法在所有浏览器中使用。请参见示例和有关此功能的信息。
{% load static %}
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="myfile">
<button type="submit">Upload</button>
</form>
{% if uploaded_file_url %}
<p>File uploaded at: <a href="{{uploaded_file_url }}">
{{uploaded_file_url
}}</a></p>
{% endif %}
<p><a href="{% url 'timelinemethod' %}">Return to home</a></p>
{% endblock %}
if request.method == 'POST' and request.FILES['myfile']:
myfile = request.FILES['myfile']
fs = FileSystemStorage()
# f=open(myfile)
#print("hai",f.name())
filename = fs.save(myfile.name, myfile)
print(myfile)
import shutil
# shutil.copytree(myfile,"./media/",myfile)
print("okay")
print("hello",inspect.getfile(inspect.currentframe()))
print("ok",myfile.name)
print("not ok",myfile)
uploaded_file_url = fs.url(filename)
# print(uploaded_file_url.parts)
print(uploaded_file_url)
print("hello") #import os
# k=os.path.dirname(os.path.abspath(myfile))
# print(k)
obj= Document( document=uploaded_file_url)
obj.save()
return render(request, 'simple_upload.html', {
'uploaded_file_url': uploaded_file_url
})
return render(request, 'simple_upload.html')