HTML Filepicker,不发送文件本身-仅文件路径

时间:2019-04-10 11:40:28

标签: html filepicker

我正在使用Django构建仅在本地使用的webapp。在此之前,我几乎没有Web开发,Django和HTML的直接经验。

我希望用户能够在自己的计算机上浏览文件,就像使用<input type="file" [...]>一样。但是,由于该应用程序仅在本地使用,并且涉及到一些非常大的文件,因此我只希望在按提交时访问文件路径-即,不上传文件数据本身。

使用Django的FileField类,我无法绕过文件上传阶段。我使用了自定义的上传过滤器(并确认它们实际上已被调用),并在其中的几个不同位置尝试了raise SkipFile,根据我的理解,这至少应该根据文档说明取消上传文件。

我认为我是通过直接输入HTML而不是使用Django的dir_form来破解它的:

<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <!-- {{ dir_form }} -->
    <input type="file" id="docpicker" name="filepath">
    <input type="submit" value="Submit" name="file">
</form>

然后我在上载处理程序的不同位置尝试了raise SkipFile(打印件将按照它们的调用顺序查看):

class SkippingUploadHandler(FileUploadHandler):

    def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None):
        print(1)
        raise SkipFile

    def new_file(self, *args, **kwargs):
        print(2)
        raise SkipFile

    def receive_data_chunk(self, raw_data, start):
        print(3)
        raise SkipFile

但是这些没有帮助。

我希望用户能够在自己的系统中浏览,选择文件并按“提交”。提交时,我希望仅传输文件路径,而文件内容,就像目前的情况一样。

非常感谢所有帮助(和耐心)!

0 个答案:

没有答案