zoukankan      html  css  js  c++  java
  • django上传下载大文件

    上传

    def upFile(file):
        upload_dir = '/tmp/upload/%s' % username
        if request.method == 'POST':
            upload_file = request.FILES.get('file', None)
    
            if upload_file:
                if not os.path.exists(upload_dir):
                    os.makedirs(upload_dir)
                filename = '%s/%s' % (upload_dir, upload_file.name)
                f = open(filename, 'wb')
                for chunk in upload_file.chunks():
                    f.write(chunk)
                f.close()

    下载

    import os, tempfile, zipfile
    from django.http import HttpResponse
    from django.core.servers.basehttp import FileWrapper
    
    
    def send_file(request):
        """                                                                         
        Send a file through Django without loading the whole file into              
        memory at once. The FileWrapper will turn the file object into an           
        iterator for chunks of 8KB.                                                 
        """
        filename = __file__ # Select your file here.                                
        wrapper = FileWrapper(file(filename))
        response = HttpResponse(wrapper, content_type='text/plain')
        response['Content-Length'] = os.path.getsize(filename)
        return response
    
    
    def send_zipfile(request):
        """                                                                         
        Create a ZIP file on disk and transmit it in chunks of 8KB,                 
        without loading the whole file into memory. A similar approach can          
        be used for large dynamic PDF files.                                        
        """
        temp = tempfile.TemporaryFile()
        archive = zipfile.ZipFile(temp, 'w', zipfile.ZIP_DEFLATED)
        for index in range(10):
            filename = __file__ # Select your files here.                           
            archive.write(filename, 'file%d.txt' % index)
        archive.close()
        wrapper = FileWrapper(temp)
        response = HttpResponse(wrapper, content_type='application/zip')
        response['Content-Disposition'] = 'attachment; filename=test.zip'
        response['Content-Length'] = temp.tell()
        temp.seek(0)
        return response
  • 相关阅读:
    XPath 入门
    用jQuery为页面添加活力
    将xml中的数据导入到数据库
    web.config 电邮配置
    一、创建Cuisl.dll工程
    使用ASP.NET服务器控件
    VSTO install error 0x80131604
    javaScript 5
    CSS 基础
    创建第一个ASP.NET网站
  • 原文地址:https://www.cnblogs.com/cmsd/p/4063750.html
Copyright © 2011-2022 走看看