Jump to content

Archived

This topic is now archived and is closed to further replies.

ericolvr

Múltiplo Upload

Recommended Posts

Boa tarde, como forma de estudo desenvolvi um sistema de "multiplo upload" que disponibilizo abaixo.

Ainda não está da forma como quero, pois preciso de uma relação arquivos/usuario, se alguém souber como desenvolve-lo, por favor incremente o código, de qq forma está ai para uso.

 

Nome do projeto = foto

Nome da aplicacao = gerencia

 

Config. do MEDIA_ROOT no foto/settings.py

import os
PROJECT_ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
include das urls no foto/urls.py

    (r'^gerencia/', include('gerencia.urls')),
foto/gerencia/templetags/uploadify.py

from django import template
from foto import settings

register = template.Library()

# ----------------------------------------------------------------
# Realiza o multiplo upload
# ----------------------------------------------------------------
@register.inclusion_tag('upload.html', takes_context=True)
def file_upload(context, upload_complete_url):
    return {
        'upload_complete_url' : upload_complete_url,
    }     
foto/gerencia/views.py

from django.shortcuts import render_to_response
from django.http import HttpResponse
import django.dispatch

# Seleciona as fotos  para  o multiplo upload
def selecionaArquivos(request, *args, **kwargs):
    usuario = User.objects.filter(username=request.user)
    clientes = Cliente.objects.filter(usuario=usuario)
    return render_to_response(
        'upload.html',
        locals(),
        context_instance=RequestContext(request))
        
  
# Realiza  o multiplo upload
def upload(request):
    if request.method == 'POST':
        file = request.FILES['Filedata']
        print file.name
        
        path = '/home/erico/projetos/foto/media/arquivos/'
        
        fd = open('%s%s' % (path, file.name), 'wb')
        fd.write(file.read())
        fd.close()
        
        return HttpResponse('True')
foto/gerencia/urls.py

from django.conf.urls.defaults import *
from gerencia.views import *

#URLS  de upload
urlpatterns = patterns('',
    url(r'selecionaArquivos/$',selecionaArquivos),
    url(r'upload/$', upload, name='uploadify_upload'),
)

foto/templates/upload.html

<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/swfobject.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.uploadify.js"></script>
<div id="uploadify" class="multi-file-upload">
	<input id="fileInput" name="fileInput" type="file" />
</div>

</div>
		<script type="text/javascript">// <![CDATA[	
		$(document).ready(function() {
		$('#fileInput').uploadify({
			'uploader'  : '{{ MEDIA_URL }}js/uploadify.swf',
			'script'    : '{% url uploadify_upload %}',
			'cancelImg' : '{{ MEDIA_URL }}js/cancel.png',
			'auto'      : true,
			'folder'    : '/home/erico/projetos/foto/media/arquivos/',
			'multi'     : true,
			'onAllComplete' : allComplete
		});
		});

function allComplete(event, data) {
    $('#uploadify').load('{{ upload_complete_url }}', {
        'filesUploaded': data.filesUploaded,
        'errorCount': data.errors,
        'allBytesLoaded': data.allBytesLoaded,
        'speed': data.speed
    });
    // Raise custom event
    $('#uploadify').trigger('allUploadsComplete', data);
}
// ]]></script>

os arquivos js e flash do uploadify podem ser baixados em http://www.uploadify.com

os mesmos estão dentro da pasta /foto/media/js/

 

 

Abraços

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.