使用Dropzone和Laravel 5.5

时间:2017-09-30 08:39:44

标签: php laravel dropzone.js

我想以长篇形式实现Dropzone。所有教程都只关注图片上传,如果您的表单中有其他内容,则没有教程。我被困在显示dropzone。我已将cssjs文件链接到我的布局文件中,但我仍然在控制台中获得了一个用于图片上传和错误的未固定框:No URL provided.

这是我的表单的一部分,应该显示Dropzone:

<form action="/ads/new" method="post" enctype="multipart/form-data">
<input class="input" type="text" name="name">
<input name="file" type="file" class="dropzone" multiple />

我将不胜感激任何帮助。感谢。

更新:我搜索了这个上传器的所有示例,他们都只有图片上传字段,没有别的。当我在表单中有更多字段时,我需要一个解决方案。类别dropzone不能在整个表单上,因为我有更多字段这不仅仅是图像上传者!

我试过这个:

Dropzone.autoDiscover = false;

  $("#pics").dropzone({
    url: '/ads/new',
    maxFilesize: 1
  });

并且没有错误,但整个dropzone功能都消失了。

顺便说一下。如果您不知道如何提供帮助,则无需进行投票。

2 个答案:

答案 0 :(得分:0)

试试这可能会对你有所帮助

<form action="/ads/new" method="post" enctype="multipart/form-data" class="dropzone">
<input class="input" type="text" name="name">
<input name="file" type="file"  multiple />

答案 1 :(得分:0)

要在Laravel中使用dropzone,您可以使用以下示例。当然,将其更改为您想要的行为。

<强> HTML

<form id="my-awesome-dropzone" class="dropzone"></form>

<强> JQuery的

<script type="text/javascript">
        Dropzone.autoDiscover = false;
        $(document).ready(function(){

            var baseUrl = "{{ url('/') }}";
            var token = "{{ Session::token() }}";

            $("#my-awesome-dropzone").dropzone({
                paramName: 'file',
                url: baseUrl+"/ads/new",
                params: {
                    _token: token
                },
                dictDefaultMessage: "Drop or click to upload images",
                clickable: true,
                maxFilesize: 2,
                addRemoveLinks: true,
                removedfile: function(file) {
                    // @TODO : Make your own implementation to delete a file
                },
                queuecomplete: function() {
                    // @TODO : Ajax call to load your uploaded files right away if required
                }
            });
        });
</script>

路线的Laravel上传功能:/ ads / new

use Illuminate\Support\Facades\File; // Required Dependencies
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Input;

public function upload() {
        $destinationPath = public_path() . '/uploads/'; // upload folder, set whatever you like
        $fileNameWithExtension = Input::file('file')->getClientOriginalName();

        $upload_success = Input::file('file')->move($destinationPath, $fileNameWithExtension); // uploading file to given path

        if ($upload_success) {
            return Response::json('success', 200);
        } else {
            return Response::json('error', 400);
        }
}