相关疑难解决方法(0)

如何在HTTP中编码Content-Disposition头文件名参数?

想要强制下载资源而不是直接在Web浏览器中呈现资源的Web应用程序Content-Disposition在表单的HTTP响应中发出标头:

Content-Disposition: attachment; filename=FILENAME

filename参数可用于建议浏览器下载资源的文件的名称.但是,RFC 2183(Content-Disposition)在2.3节(文件名参数)中指出文件名只能使用US-ASCII字符:

当前[RFC 2045]语法将参数值(以及因此内容处理文件名)限制为US-ASCII.我们认识到允许在文件名中使用任意字符集的巨大愿望,但是定义必要的机制超出了本文档的范围.

然而,有经验证据表明,当今大多数流行的Web浏览器似乎都允许非US-ASCII字符(缺乏标准)对编码方案和文件名的字符集规范不同意.问题是,如果文件名"naïvefile"(没有引号,第三个字母是U + 00EF)需要编码到Content-Disposition标题中,那么流行浏览器采用的各种方案和编码是什么?

出于这个问题的目的,流行的浏览器是:

  • 火狐
  • IE浏览器
  • 苹果浏览器
  • 谷歌浏览器
  • 歌剧

browser specifications http-headers

509
推荐指数
15
解决办法
33万
查看次数

如何使用一个HTTP请求下载多个文件?

使用案例:用户点击网页上的链接 - 繁荣!加载位于其文件夹中的文件.
我尝试使用multipart/mixed消息打包文件,但它似乎只适用于Firefox

这就是我的回答:

HTTP/1.0 200 OK
Connection: close
Date: Wed, 24 Jun 2009 23:41:40 GMT
Content-Type: multipart/mixed;boundary=AMZ90RFX875LKMFasdf09DDFF3
Client-Date: Wed, 24 Jun 2009 23:41:40 GMT
Client-Peer: 127.0.0.1:3000
Client-Response-Num: 1
MIME-Version: 1.0
Status: 200

--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="001.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
Content-type: image/jpeg 
Content-transfer-encoding: binary 
Content-disposition: attachment; filename="002.jpg" 

<< here goes binary data >>--AMZ90RFX875LKMFasdf09DDFF3 
--AMZ90RFX875LKMFasdf09DDFF3--
Run Code Online (Sandbox Code Playgroud)

谢谢

PS否,压缩文件不是一个选项

browser http multipart

45
推荐指数
1
解决办法
5万
查看次数

Django - 创建多个文件的Zip并使其可下载

可能重复:
在Django中提供动态生成的ZIP存档

(如果我错过了任何可能的副本,请随时指出我)

我看过这个片段:http: //djangosnippets.org/snippets/365/

这个答案:

但我想知道如何调整它们以满足我的需要:我希望压缩多个文件,并通过链接下载(或通过视图动态生成)存档.我是Python和Django的新手,所以我不知道如何去做.

预先感谢!

python django file

21
推荐指数
2
解决办法
3万
查看次数

使用多个文件创建zip存档

我正在使用以下代码,我传递.pdf文件名及其路径来创建zip文件.

for f in lstFileNames:
        with zipfile.ZipFile('reportDir' + str(uuid.uuid4()) + '.zip', 'w') as myzip:
            myzip.write(f)
Run Code Online (Sandbox Code Playgroud)

它只存档一个文件.我需要将列表中的所有文件归档到一个zip文件夹中.

在人们开始指出之前,是的,我已经从这个这个链接咨询了答案,但那里给出的代码对我不起作用.代码运行但我无法在计算机的任何位置找到生成的zip文件.

一个简单明了的答案将不胜感激.谢谢.

python

18
推荐指数
1
解决办法
1万
查看次数

Python创建zip文件

我使用以下脚本来创建ZIP文件:

import zipfile
import os

def zip_file_generator(filenames, size):

    # filenames = path to the files

    zip_subdir = "SubDirName"
    zip_filename = "SomeName.zip"

    # Open BytesIO to grab in-memory ZIP contents
    s = io.BytesIO()

    # The zip compressor
    zf = zipfile.ZipFile(s, "w")

    for fpath in filenames:
        # Calculate path for file in zip
        fdir, fname = os.path.split(fpath)
        zip_path = os.path.join(zip_subdir, fname)

        # Add file, at correct path
        zf.write(fpath, zip_path)

    # Must close zip for all contents to be written
    zf.close()

    # Grab …
Run Code Online (Sandbox Code Playgroud)

python django python-3.x

9
推荐指数
1
解决办法
1164
查看次数

创建zip存档以供即时下载

在我正在处理的Web应用程序中,用户可以创建一个包含文件的文件夹的zip存档.这是代码:

files = torrent[0].files
    zipfile = z.ZipFile(zipname, 'w')
    output = ""

    for f in files:
        zipfile.write(settings.PYRAT_TRANSMISSION_DOWNLOAD_DIR + "/" + f.name, f.name)

downloadurl = settings.PYRAT_DOWNLOAD_BASE_URL + "/" + settings.PYRAT_ARCHIVE_DIR + "/" + filename
output = "Download <a href=\"" + downloadurl + "\">" + torrent_name + "</a>"
return HttpResponse(output)
Run Code Online (Sandbox Code Playgroud)

但是,在下载zip存档时,这会产生长时间等待(10秒以上)的恶劣副作用.有可能跳过这个吗?而不是将存档保存到文件,是否可以直接发送给用户?

我确实相信torrentflux提供了我正在谈论的这个令人兴奋的功能.能够压缩GB数据并在一秒钟内下载.

python django zip archive

5
推荐指数
3
解决办法
4984
查看次数

Django,关于zip文件响应的问题

我在django中作为附件发送请求时遇到问题.我的应用程序将一些数据写入文件并对其进行拉链.但是,当我返回附件响应时,浏览器会下载它,但zip文件已损坏.(原始zip包含我的文件,不会出现任何错误.)

我的代码在这里:

        file_path = "/root/Programs/media/statics/schedules/"
        zip_file_name = file_path + "test.zip"
        zip_file = zipfile.ZipFile(zip_file_name, "w")
        for i in range(len(planner_list)):
                file_name = file_path + str(planner_list[i][0].start_date)
                render_to_file('deneme.html',file_name ,{'schedule':schedule})
                zip_file.write(file_name, os.path.basename(file_name),zipfile.ZIP_DEFLATED)
                os.remove(file_name)
        zip_file.close()

        response = HttpResponse(file_path , content_type='application/zip')
        response['Content-Disposition'] = 'attachment; filename=test.zip'
        return response
Run Code Online (Sandbox Code Playgroud)

python django zip

1
推荐指数
1
解决办法
4999
查看次数