CakePHP Brasil

20 dezembro 2008

Usando SWFUpload com CakePHP

Arquivado em: CakePHP — Tags:, , , — Juan Basso @ 4:26 pm

Vou descrever aqui como usar o SWFUpload com CakePHP 1.2. Para facilitar, fiz um zip com todos arquivos necessários. Você pode baixá-lo aqui.

Neste arquivo, existe os arquivos de terceiros (pasta vendors) e na pasta app existem os arquivos necessários para sua aplicação.

Note que na pasta config, há o arquivo bootstrap.php. Nele eu só coloquei as configurações de pasta. Caso sua aplicação use mais alguma outra coisa no bootstrap, não esqueça de fazer um merge.

Na pasta webroot, o arquivo JS é o responsável pelas ações (cancelar, envio OK, envio NOK, etc), então dependendo da sua aplicação vai ser preciso alterá-lo. O CSS é a mesma coisa…

Acho que era isso. Caso tenham alguma dúvida, não exitem em perguntar. Abraços e boa sorte a todos.

8 Comentários »

  1. Como ficou a tabela do seu banco de dados?

    Comentário por Christiano — 15 fevereiro 2009 @ 5:06 pm

  2. O banco pode ficar de qualquer jeito, no controller é que você vai saber, veja na linha:
    $this->Photo->save(array(‘Photo’ => array(‘building_id’ => $id, ‘arquivo’ => $this->SwfUpload->filename, ‘descricao’ => ”)));

    Ali estou salvando no banco com o campo building_id sendo o id passado, o campo ‘arquivo’ com o caminho onde foi salvo o arquivo e deixando a descrição vazia.

    Todos esses campos são opcionais, você poderia até ter mais campos, ou até mesmo nem ter banco se quiser. O que importa é o valor do SwfUpload->filename… Ele é uma string (se você vai criar a tabela no banco, pode criar uma varchar).

    Entendeu?

    Comentário por Juan Basso — 15 fevereiro 2009 @ 5:11 pm

  3. Parabens pelo exemplo! e obrigado.

    Estou tentando usa-lo, mas no debug do SWF me diz:

    SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.jpg;*.gif;*.png
    SWF DEBUG: Exception: Error: Error #2176

    quando eu clico no botao para selecionar o arquivo. Alguma ideia?

    Comentário por Patrick — 27 fevereiro 2009 @ 6:45 am

  4. Obrigado, Patrick.

    Sobre seu erro, eu nunca tinha visto. Coloquei no Google e vi algumas páginas falando que era um problema do SWFUpload mesmo e que a versão mais nova deles corrigia este problema. Tente ver se isto não resolve seu problema…

    Abraços.

    Comentário por Juan Basso — 27 fevereiro 2009 @ 8:14 am

  5. Pois é, dei uma procurada e vi isso também!
    Consegui resolver.

    Agora to batalhando pra ver como fazer um thumb, como salvar o registro da foto no BD e como adicionar uma legenda pra cada foto enviada.

    Brigadão!

    Comentário por Patrick — 27 fevereiro 2009 @ 10:13 am

  6. Gostei do teu post, mas continuo sem conseguir por isto a mexer.
    Com efeito o meu poblema é que recebo sempre a mensagem 302 do HTTP. parece ter a ver com algum redirect que o proprio cake gera, mas não sei aonde:
    se me puderes ajudar agradeço!

    Output do debug:
    SWF DEBUG: SWFUpload Init Complete
    SWF DEBUG:
    SWF DEBUG: —– SWF DEBUG OUTPUT —-
    SWF DEBUG: Build Number: SWFUPLOAD 2.2.1
    SWF DEBUG: movieName: SWFUpload_0
    SWF DEBUG: Upload URL: /cakeloc/admin/uploads/upload
    SWF DEBUG: File Types String: *.*
    SWF DEBUG: Parsed File Types:
    SWF DEBUG: HTTP Success: 0
    SWF DEBUG: File Types Description: All Files (*.*)
    SWF DEBUG: File Size Limit: 104857600 bytes
    SWF DEBUG: File Upload Limit: 10
    SWF DEBUG: File Queue Limit: 10
    SWF DEBUG: Post Params:
    SWF DEBUG: CAKESESSION=0668e235603437d2b0b50a55efe66258
    SWF DEBUG: —– END SWF DEBUG OUTPUT —-
    SWF DEBUG:
    SWF DEBUG: SWFUpload Init Complete
    SWF DEBUG:
    SWF DEBUG: —– SWF DEBUG OUTPUT —-
    SWF DEBUG: Build Number: SWFUPLOAD 2.2.1
    SWF DEBUG: movieName: SWFUpload_1
    SWF DEBUG: Upload URL: /cakeloc/admin/uploads/upload
    SWF DEBUG: File Types String: *.jpg;*.gif;*.png
    SWF DEBUG: Parsed File Types: jpg,gif,png
    SWF DEBUG: HTTP Success: 0
    SWF DEBUG: File Types Description: Image Files (*.jpg;*.gif;*.png)
    SWF DEBUG: File Size Limit: 204800 bytes
    SWF DEBUG: File Upload Limit: 10
    SWF DEBUG: File Queue Limit: 5
    SWF DEBUG: Post Params:
    SWF DEBUG: PHPSESSID=0668e235603437d2b0b50a55efe66258
    SWF DEBUG: —– END SWF DEBUG OUTPUT —-
    SWF DEBUG:
    SWF DEBUG: Event: fileDialogStart : Browsing files. Multi Select. Allowed file types: *.jpg;*.gif;*.png
    SWF DEBUG: Select Handler: Received the files selected from the dialog. Processing the file list…
    SWF DEBUG: Event: fileQueued : File ID: SWFUpload_1_0
    SWF DEBUG: Event: fileDialogComplete : Finished processing selected files. Files selected: 1. Files Queued: 1
    SWF DEBUG: StartUpload: First file in queue
    SWF DEBUG: Event: uploadStart : File ID: SWFUpload_1_0
    SWF DEBUG: Global Post Item: PHPSESSID=0668e235603437d2b0b50a55efe66258
    SWF DEBUG: ReturnUploadStart(): File accepted by startUpload event and readied for upload. Starting upload to /cakeloc/admin/uploads/upload for File ID: SWFUpload_1_0
    SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_1_0
    SWF DEBUG: Event: uploadProgress: File ID: SWFUpload_1_0. Bytes: 1016. Total: 1016
    SWF DEBUG: Event: uploadError: HTTP ERROR : File ID: SWFUpload_1_0. HTTP Status: 302.
    SWF DEBUG: Event: uploadComplete : Upload cycle complete.
    Error Code: HTTP Error, File name: view.gif, Message: 302

    Comentário por José Coelho — 5 novembro 2009 @ 12:26 pm

  7. Só vc?

    Todo mundo, pois o flash no cakePHP perde a sessão durante o upload =/

    Não conheço ninguém no mundo que postou uma solução para isto! =/

    Comentário por Tylër — 27 outubro 2010 @ 6:01 pm

  8. Na segunda eu posto num site tyler para ver então ,porque ate crop eu ja fiz no cake php

    Comentário por henrique — 5 fevereiro 2012 @ 1:09 am

Feed RSS dos comentários deste post URL de TrackBack

Deixe um comentário

Powered by WordPress