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.
Como ficou a tabela do seu banco de dados?
Comentário por Christiano — 15 fevereiro 2009 @ 5:06 pm
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
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
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
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
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
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
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