首页 > 解决方案 > 在dropzone中上传后如何更改重命名?

问题描述

我希望我的文件名变得唯一,因此我可以将文件名传递给控制器​​并按名称删除文件。但是我尝试了很多方法它不起作用。知道如何更改文件名吗?

我在服务器上更改它并返回新文件名。现在我想将上传的文件名重命名为我返回的名称。

看这张图片,

拖放区

画廊控制器

public function create(Product $product)
{
    $galleries = Gallery::where('product_id', $product->id)->latest();
    return view('Admin.galleries.create', compact('product', 'galleries'));
}

创建.blade.php

@extends('Admin.master')

@push('style')
    <link rel="stylesheet" href="{{ asset('themes/css/dropzone.min.css') }}">
@endpush

@section('content')

    <div class="col-md-10 p-5 pt-2">
        <form method="post" action="{{ route('products.galleries.store', $product->id) }}" enctype="multipart/form-data" class="dropzone" id="dropzone">
            @csrf
        </form>
        <hr>
    </div>

@endsection

@push('script')
    <script src="{{ asset('themes/js/dropzone.min.js') }}"></script>
    <script>
        Dropzone.options.dropzone = {
            maxFilesize: 12000000,
            renameFile: function (file) {
                var date = new Date();
                var time = date.getTime();
                return time + file.name;
            },
            acceptedFiles: ".jpeg, .jpg, .png, .gif",
            addRemoveLinks: true,
            timeout: 5000000,
            removedfile: function (file) {
                var name = file.upload.filename;
                @isset($gallery)
                $.ajax({
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
                    },
                    type: 'POST',
                    url: '{{ route('products.galleries.destroy', [$product->id, $gallery->id]) }}',
                    date: {filename, name},
                    success: function (data) {
                        console.log('File has been successfully removed!!');
                    },
                    error: function (e){
                        console.log(e);
                    },
                });
                @endisset
                var fileRef;
                return (fileRef = file.previewElement) != null ? fileRef.parentNode.removeChild(file.previewElement) : void 0;
            },
            success: function (file, response) {
                console.log(response);
            },
            error: function (file, response) {
                return false;
            },
        };
    </script>
@endpush

网页.php

Route::resource('products', 'ProductController');
Route::resource('products.galleries', 'GalleryController');

标签: phplaraveldropzone

解决方案


推荐阅读