Téléchargement de fichiers de trombones angulaires 4 Rails 5

user3799793

Je travaille sur un projet utilisant un frontend Angular 4 et un backend api Rails 5. J'essaie de télécharger une vidéo à l'aide d'un trombone, mais je ne sais pas pourquoi elle n'est pas enregistrée dans la base de données. Tous les paramètres sont là dans le journal qu'il ne sauvegarde toujours pas. J'ai modifié le contrôleur en supprimant l'instruction require et refactorisé le code frontal plusieurs fois. Il existe plusieurs techniques que j'ai essayées à partir de diverses sources qui n'ont pas fonctionné et je dessine un blanc sur ce qui se passe exactement. Toute contribution serait vivement appréciée.

c'est un journal de ce que je vois

I, [2017-11-22T19:21:10.984681 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e] Started POST "/movies" for 108.71.214.220 at 2017-11-22 19:21:10 +0000
I, [2017-11-22T19:21:11.001990 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e] Processing by MoviesController#create as HTML
I, [2017-11-22T19:21:11.002088 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e]   Parameters: {"video"=>#<ActionDispatch::Http::UploadedFile:0x000055a94d4e5970 @tempfile=#<Tempfile:/tmp/RackMultipart20171122-5898-17o86vd.mp4>, @original_filename="SampleVideo_720x480_1mb.mp4", @content_type="video/mp4", @headers="Content-Disposition: form-data; name=\"video\"; filename=\"SampleVideo_720x480_1mb.mp4\"\r\nContent-Type: video/mp4\r\n">, "title"=>"Test Movie", "year"=>"1998", "plot"=>"Awesomeness"}
D, [2017-11-22T19:21:11.016579 #5898] DEBUG -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e]   ^[[1m^[[36mApiKey Load (0.3ms)^[[0m  ^[[1m^[[34mSELECT  "api_keys".* FROM "api_keys" WHERE "api_keys"."client" = $1 LIMIT $2^[[0m  [["client", "z8CSVtE3qejMxs4FFwYmKA"], ["LIMIT", 1]]
I, [2017-11-22T19:21:11.021183 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e] Redirected to http://localhost:4200
I, [2017-11-22T19:21:11.021266 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e] Filter chain halted as :authorized rendered or redirected
I, [2017-11-22T19:21:11.021376 #5898]  INFO -- : [6c0fdb67-31b6-43c6-8a79-e5ed2dfbec1e] Completed 302 Found in 19ms (ActiveRecord: 5.5ms)

modèle

<div class="container">
    <h1>Movie Add Form</h1>
    <form [formGroup]="newForm" (ngSubmit)="upload()">
        <div class="form-group">
            <label for="title">Title:</label>
            <input 
                type="text" 
                name="title" 
                class="form-control" 
                formControlName="title"
            >

            <label for="year">Year:</label>
            <input 
                type="text" 
                name="year" 
                class="form-control" 
                formControlName="year"
            >

            <label for="plot">Plot:</label>
            <input 
                type="text" 
                name="plot" 
                class="form-control" 
                formControlName="plot"
            >
        </div>

        <div class="form-group">
            <input type="file" #fileInput placeholder="Upload file..." accept="video/mp4">
        </div>

        <div class="form-group">
            <button type="submit" class="btn btn-primary">Submit</button>
        </div>
    </form>
</div>

composant

export class DvdNewComponent implements OnInit {
    newForm: FormGroup
    @ViewChild('fileInput') fileInput;

    constructor(private dvdService: DvdService,
                            private router: Router) { }

    ngOnInit() {
        this.newForm = new FormGroup({
            'title': new FormControl(null, Validators.required),
            'year': new FormControl(null, Validators.required),
            'plot': new FormControl(null, Validators.required)
        })
    }

    upload() {
        const movieFile = this.fileInput.nativeElement.files[0];

        this.dvdService.uploadMovie(movieFile, this.newForm.value)
            .subscribe(
                (data) => {
                    console.log('data ' + data)
                },
                (err: HttpErrorResponse) => {
                    console.log(err)
                },
                () => {
                    this.router.navigate(['/library'])
                }
            )
    }
}

un service

uploadMovie(fileToUpload: File, form): Observable<Movie> {
        const formData = new FormData();
        formData.append('video', fileToUpload)
        formData.append('title', form.title)
        formData.append('year', form.year)
        formData.append('plot', form.plot)
        const headers = new Headers();
        headers.delete('Content-Type');
        headers.append('access-token', this.tokenService.currentAuthData.accessToken)
        headers.append('client', this.tokenService.currentAuthData.client)
        const options = new RequestOptions({ headers: headers });

        return this.http.post(this.moviesURL + '/movies', formData, options)
        .map((res) => res.json())
    }

Contrôleur sauvegardé

def create
                movie = Movie.new(movie_params)

                if movie.save
                        render json: movie, status: 201
                else
                        render json: { errors: movie.errors }, status: 422
                end
        end

def movie_params
                        params.permit(:title, :year, :plot, :video, :video_url)
                end
user3799793

Après avoir lu les commentaires, j'ai vérifié les cors de rack et j'ai trouvé qu'il était activé. Ensuite, j'ai vérifié le système d'autorisation et j'ai trouvé après quelques recherches que l'ID client ne correspondait pas. Cela a été fait pour le frontend acheminé vers le mauvais point de terminaison. J'ai donc résolu le problème en insérant le bon point de terminaison et maintenant le code fonctionne.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Téléchargement de fichiers FactoryGirl de Rails 4 Paperclip

Téléchargement de plusieurs images par l'administrateur actif avec des trombones 5

Rails 5 + Shrine téléchargement de plusieurs fichiers

Liste déroulante de l'association des trombones Ruby on Rails

Comment créer un processeur de trombones personnalisé pour récupérer les dimensions de l'image Rails 4

Rails 4 téléchargement d'images ou de fichiers multiples à l'aide de Carrierwave

téléchargement de fichiers multiples avec des formes réactives angulaires

Pourquoi le téléchargement de trombones donne-t-il une erreur Essayer de lier?

html5 téléchargement de fichiers multiples avec spring mvc 4 et spring boot

Rails 4 Téléchargement de plusieurs fichiers à l'aide de carrierwave et de formulaires imbriqués

Comment limiter les fichiers à UTF-8 encodés uniquement dans le téléchargement de fichiers angulaires?

Téléchargement de fichiers C # .NET Framework 5

Téléchargement de fichiers avec vue partielle MVC 5

Téléchargement de fichiers / images Ajax Laravel 5

Téléchargement de fichiers Laravel 5: stream () ou download ()

Téléchargement de fichiers dans Angular5

Téléchargement de fichiers Symfony 4 ne fonctionne pas

Téléchargement de fichiers MVC 4 Razor

Impossible de télécharger sur S3 avec des trombones 5. option de configuration non valide : seau

Téléchargement de fichiers angulaires et Django : la vérification CSRF interdite (403) a échoué. Demande abandonnée

Téléchargement de fichiers Rails à l'aide de send_data avec action de suivi

Application Hello world rails avec option de téléchargement de fichiers dropzonejs-rails

Téléchargement / lecture de fichiers mp3 à l'aide de Rails

Routage de composants de masquage angulaires 4/5

Téléchargement à partir de l'API du système de fichiers HTML5

Téléchargement / téléchargement de fichiers PDF Firebase

Les fichiers de trombones sont supprimés après chaque déploiement

Rails : Erreur de téléchargement de plusieurs fichiers, tableau vide

Téléchargement de fichiers S3 avec l'application Rails

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  4. 4

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  5. 5

    Microsoft.WebApplication.targets

  6. 6

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  9. 9

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  10. 10

    comment afficher un bouton au-dessus d'un autre élément ?

  11. 11

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  12. 12

    Filtrer les données en fonction des conditions d'une trame de données

  13. 13

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  14. 14

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  15. 15

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  16. 16

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  17. 17

    Stop jQuery execution after one time execution

  18. 18

    Concaténer des variables dans ansible

  19. 19

    Comment calculer la probabilité du graphique de densité?

  20. 20

    php ajouter et fusionner des données de deux tables

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive