使用Vue-dropzone示例进行Laravel VueJS文件上传

使用Vue-dropzone示例进行Laravel VueJS文件上传

在这一步中,我们将学习Vue-dropzone,以便在Laravel中上传VueJS文件。如果我们尝试通过添加拖放选项来上传文件,有一种很棒的方法可以选择dropzone js来实现此目的。在我们的示例中,我们将使用Vue dropzone组件上传VueJS文件。为此,我们可以使用 laravel 6,Laravel 7和Laravel 8。因此,在我们的VueJS脚本中,也可以使用dropzone js。

为了实现Vue.js dropzone的文件或图像上传,我们应该按照逐步过程进行。首先,将下载Laravel 5.6。然后,将初始化 VueJS 。然后,我们将安装Vue-dropzone包。现在,我们将使用一个方法创建一个控制器和一个post路由。我们将使用控制器并在其上创建一个POST方法。之后,我们将通过编写以下代码保存图像。如果我们想添加更多详细信息,也可以编写。使用Vue-dropzone组件进行文件或图像上传的逐步过程如下:

步骤1:

这是第一步,在这一步中,我们将安装Laravel 5.6项目。为此,我们将在系统上打开命令提示符或终端,然后运行以下命令。

composer create-project --prefer-dist laravel/laravel blog

步骤2:

在第二步中,我们将要创建路由。为此,我们将创建一个Post路由,并在其上编写文件上传或图像的代码。所以让我们拿到那个文件,然后添加一个新的路由,就像这样:

routes/web.php

Route::post('formSubmit','ImageController@formSubmit');

步骤3:

在第三步中,我们将要创建控制器。现在我们将创建formSubmit方法和ImageController。我们将使用这个方法来将文件或图像存储在服务器上。所以我们将在这个方法中编写代码。为此,我们将创建一个控制器,如下所示:

app/Http/Controllers/ImageController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ImageController extends Controller
{
    /**
     * success response method.
     *
     * @return \Illuminate\Http\Response
     */
    public function formSubmit(Request request)
    {imageName = time().'.'.request->file->getClientOriginalExtension();request->file->move(public_path('images'), $imageName);

        return response()->json(['success'=>'You have successfully upload file.']);
    }
}

步骤4:

在这一步中,我们将进行npm配置。首先,我们将添加一个VueJS设置。之后,我们将安装npm,并且还会安装Vue-dropzone的包。我们将使用我们的项目,然后使用以下命令:

安装Vue:

php artisan preset Vue

安装npm:

npm install

安装Vue-dropzone:

npm install Vue2-dropzone

步骤5:

在第五步中,我们将在组件和app.js上进行编写。首先,我们将设置app.js的路径,然后编写代码。之后,我们将创建VueJS的组件。因此,我们要创建这两个文件,并添加以下代码:

resources/assets/js/app.js:

require('./bootstrap');

window.Vue = require('Vue');

Vue.component('example-component', require('./components/ExampleComponent.Vue'));

const app = new Vue({
    el: '#app'
});

将下面的英文翻译成中文,不解释,保留HTML格式:

resources/assets/js/components/ExampleComponent.Vue:

<template>
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">Example Component</div>
                    <div class="card-body">
                        I'm an example component.
                        <Vue-dropzone ref="myVueDropzone" id="dropzone" :options="dropzoneOptions"></Vue-dropzone>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>

import Vue2Dropzone from 'Vue2-dropzone'
import 'Vue2-dropzone/dist/Vue2Dropzone.min.css'

    export default {
     components: {
        VueDropzone: Vue2Dropzone
      },
      data: function () {
        return {
          dropzoneOptions: {
              url: '/formSubmit',
              headers: {
                "X-CSRF-TOKEN": document.head.querySelector("[name=csrf-token]").content
               }
          }
        }
      },
        mounted() {
            console.log('Component mounted.')
        }
    }
</script>

步骤6:

在第六步中,我们将要更新 welcome.blade.php 文件。为此,将使用app/js文件。所以我们将通过编写以下代码来更新这个文件:

resources/views/welcome.blade.php:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="csrf-token" content="{{ csrf_token() }}">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title> Example of Vue JS File Upload Using vue-dropzone in Laravel </title>
        <link href="{{asset('css/app.css')}}" rel="stylesheet" type="text/css">
    </head>
    <body>
        <div id="app">
            <example-component></example-component>
        </div>
        <script src="{{asset('js/app.js')}}" ></script>
    </body>
</html>

当我们运行以下命令时,app.js 文件将会被更新:

npm run dev

当我们运行上面的例子时,我们将得到以下输出:
使用Vue-dropzone示例进行Laravel VueJS文件上传

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程