2010-02-14 5 views
4

J'ai essayé en suivant l'exemple à: http://www.plupload.com/example_custom.phpPlupload fonctionne avec Ruby on Rails?

Mais dans la requête, le fichier n'est pas envoyé à la méthode du contrôleur, seul le nom.

Peut-être que je dois mettre dans la configuration de Plupload, quelque chose comme 'multipart = true'

Toute idée?

+0

Pouvez-vous nous le faire savoir ce que vous essayez URL à utiliser pour la forme - et ce que les noms de contrôleur + méthode sont? –

+0

Le contrôleur est admin/file_controller.Dans plupload, j'ai défini: url: '/ admin/file/upload' – Sebtm

+0

Plupload prend en charge le chunking, ce qui nécessite une attention particulière sur le serveur - le fichier final doit être construit manuellement à partir de morceaux séparés (un exemple de gestionnaire côté serveur est inclus dans le bundle Plupload). Sinon - oui, vous pouvez définir - multipart à true, et vous obtiendrez le téléchargement standard. – jayarjo

Répondre

1

Je n'ai aucune expérience avec Plupload Je ne pense pas que vous devriez avoir à traiter explicitement des téléchargements multipart dans la configuration du plugin. (C'est une bibliothèque de téléchargement de fichiers après tout.) Ne vous méprenez pas, mais avez-vous l'attribut multipart défini à true dans le balisage html?

+0

Normalement, dans le formulaire de téléchargement normal, j'écris ': html => (: multipart => true)'. Par exemple, pour SWFUpload (http://swfupload.org/), je dois spécifier dans sa configuration 'post_params :("authenticity_token": "<% = form_authenticity_token%>"}', sinon j'obtiens une erreur. Plupload dans les journaux de rails Je n'ai pas d'erreur, avec Firebug je vois que le fichier est envoyé au contrôleur, mais quand j'appelle 'logger.debug params.inspect' je n'ai que le nom du fichier – Sebtm

0

États W3C ce pour le téléchargement de fichiers ...

<FORM action="http://server.com/cgi/handle" 
     enctype="multipart/form-data" 
     method="post"> 
    <P> 
    What is your name? <INPUT type="text" name="submit-name"><BR> 
    What files are you sending? <INPUT type="file" name="files"><BR> 
    <INPUT type="submit" value="Send"> <INPUT type="reset"> 
</FORM> 
0

Peut-on voir plus de code. Il y a beaucoup de choses qui pourraient mal tourner.

Aussi, pouvez-vous utiliser le débogueur après la soumission du formulaire et poster une sortie params ici?

J

P.s. Soit dit en passant, a essayé de faire un commentaire, mais no go ...

+0

Vous devez avoir la réputation ci-dessus 50 pour laisser des commentaires –

+0

Gotcha, à une réputation de 47 Je ne peux pas faire confiance :) –

0

Quelques idées « tout » ... :-p

  1. Est-il possible le fichier que vous essayez de télécharger obtient filtré par une fonction de sécurité dans Rails, le serveur proxy-rails (apache?), ou même un logiciel sur clientide?

  2. Avez-vous essayé différents navigateurs, pour vérifier qu'il ne s'agit pas d'un problème client? (Renifler votre connexion réseau pourrait être une autre façon de vérifier que le fichier est effectivement envoyé au serveur)

  3. Si vous utilisez un rack, il existe un middleware qui peut prendre en charge le téléchargement de fichiers pour vous. Pas ce que vous vouliez, mais peut-être utile comme une solution de contournement temporaire en attendant au cas où vous découvrirez que vous devez attendre quelques corrections de bugs dans les rails ou plupload.

  4. Autorisations sur le dossier où les fichiers téléchargés sont censés aller? Ou vont-ils d'abord en mémoire, et écrivent sur le disque plus tard? Peut-être que la bibliothèque plupload utilise des fichiers temporaires quelque part et que les permissions ne fonctionnent pas.

+0

Aussi une piste possible: "les noms de vars doivent être nom et morceau" - soi-disant vos variables de rails? Je ne reçois pas vraiment le rapport d'erreur à ce sujet: http://github.com/moxiecode/plupload/issuesearch?state=open&q=rails#issue/5 –

2

La question était il y a longtemps. Mais répondra pour d'autres personnes à la recherche d'une solution.

La solution pour cela est d'ajouter "multipart: true" à votre fonction pluploadQueue ({}). Cela enverrait le fichier en multipart. Pour plusieurs fichiers, il enverra/POST la demande plusieurs fois. Ensuite, vous pouvez gérer cela sur votre contrôleur.

Espérons que cela aide.

Jas

+0

Comment pouvez-vous modifier le paramètre de nom de fichier de fichier? Il est par défaut de "fichier". Cela peut-il être changé en un param personnalisé? Toute option de configuration disponible pour cela? –

+0

Oui, il y a: option file_data_name. – jayarjo