Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.02.2017 20:51:49

Ошибка при попытке постом отправить фотографии

http://prntscr.com/e9ktu9

Вот такая вот ошибка при чем вот мои данные, как ее победить?

токен
<meta name="csrf-token" content="{{ csrf_token() }}" />
<input type="hidden" name="_token" value="{{ csrf_token() }}">
  $.ajaxSetup({
   headers:{
   'X-CSRF-TOKEN':$('meta[name="csrf-token"]').attr('content')
  }
})
VerifyCsrfToken.php
<?php

namespace App\Http\Middleware ;

    use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
    use Closure;
    class VerifyCsrfToken extends BaseVerifier
    {
        /**
         * The URIs that should be excluded from CSRF verification.
         *
         * @var array
         */
        protected $except = [
            //
        ];

        public function handle($request, Closure $next){
            return parent::handle($request, $next);
        }

        /**
         * Determine if the session and input CSRF tokens match.
         *
         * @param \Illuminate\Http\Request $request
         * @return bool
         */
        protected function tokensMatch($request)
        {
            // If request is an ajax request, then check to see if token matches token provider in
            // the header. This way, we can use CSRF protection in ajax requests also.
            $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token');

            return $request->session()->token() == $token;
        }

    }

Роут

Route::post('/functions_images', 'FunctionsController@index');

Контроллер
class FunctionsController extends Controller
{
    //
    public function __construct(){
        $this->middleware('guest');
    }
    public function index(Request $request){
        if ($request->ajax()) {
            dump($request->input());
            $array=$request->input();
            var_dump($array);
        }
    }
}

Не в сети

#2 17.02.2017 10:16:21

Re: Ошибка при попытке постом отправить фотографии

Не в сети

#3 17.02.2017 14:08:55

Re: Ошибка при попытке постом отправить фотографии

Я не могу решить эту проблему что тут можно еще просмотреть, может кто то может вызватьс реально помочь,
при отправке изображения меняется Ларавель сессия во вкладке Network вродебы токен прописан , как таковой формы нет там яваскрипт код отправляет изображение, помогите пожалуйста реально если кто то сталкивался или разбирается хорошо

http://prntscr.com/e9v2nb

Изменено imediasun (17.02.2017 14:10:06)

Не в сети

#4 17.02.2017 14:38:20

Re: Ошибка при попытке постом отправить фотографии

1) Почему ты решил что меняется  Ларавель сессия?
2) Покажи во вкладке нет что отправляется в заголовках при отправке картинки
3) Какой текст ошибки?

Изменено DBR (17.02.2017 14:39:07)

Не в сети

#5 17.02.2017 14:47:48

Re: Ошибка при попытке постом отправить фотографии

текст ошибки после отправки картинки http://prntscr.com/e9vhgo
загаловки http://prntscr.com/e9vha6

сессия до отправки http://prntscr.com/e9vhrc
сессия после отправки картинки

Не в сети

#6 17.02.2017 17:48:58

skiphog
Откуда: Киров, Россия
Сообщений: 26

Re: Ошибка при попытке постом отправить фотографии

Судя по картинке с заголовками, нет там X-CSRF-TOKEN.

Каким скриптом загружаете картинку?
Осмелюсь предположить, что вы картинку отправляете каким-то сторонним загрузчиком, который не использует jQuery ajax.
Потому и $.ajaxSetup не работает.

Если это так, то смотрите документацию скрипта и ищите как добавить заголовки.

Не в сети

#7 18.02.2017 12:26:48

Re: Ошибка при попытке постом отправить фотографии

skiphog пишет:

Судя по картинке с заголовками, нет там X-CSRF-TOKEN.

Да, видно что заголовок не используется. Видно что есть кука с очень походим названием, но это не то. На нее обращать внимание не надо.

Не в сети

#8 18.02.2017 12:27:47

Re: Ошибка при попытке постом отправить фотографии

Как варианта можно не мучаться с заголовком а добавить гет-параметр к урл с токеном.

Не в сети

#9 18.02.2017 13:48:00

Re: Ошибка при попытке постом отправить фотографии

DBR пишет:

Как варианта можно не мучаться с заголовком а добавить гет-параметр к урл с токеном.

Напишите пожалуйста как это должно выглядеть?

Не в сети

#10 18.02.2017 14:43:28

Re: Ошибка при попытке постом отправить фотографии

Здесь http://boomer.imedia.in.ua прописан токен через $.ajaxSetup
но работает только после повторного нажатия на кнопку register срабатывает, тогда появляется токен в адресной строке, почему? попробуйте
хотя в куках тоже присутствует XSRF-TOKEN  http://prntscr.com/ea9zrh

как и в том варианте с фотографией, тут я записал следующим образом

VerifyCsrfToken.php
<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
use Closure;
class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        // говорят вот тут необходимо адресс url указывать но я пробывал тот же эффект что и не указывать
       
    ];

    public function handle($request, Closure $next){
        return parent::handle($request, $next);
    }

    /**
     * Determine if the session and input CSRF tokens match.
     *
     * @param \Illuminate\Http\Request $request
     * @return bool
     */
    protected function tokensMatch($request)
    {
        // If request is an ajax request, then check to see if token matches token provider in
        // the header. This way, we can use CSRF protection in ajax requests also.
        $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token');

        return $request->session()->token() == $token;
    }

}

Изменено imediasun (18.02.2017 14:44:38)

Не в сети

#11 18.02.2017 16:30:31

Re: Ошибка при попытке постом отправить фотографии

Отключи проверку на CSRF. Это будет еще проще

Не в сети

#12 18.02.2017 17:00:44

Re: Ошибка при попытке постом отправить фотографии

DBR пишет:

Отключи проверку на CSRF. Это будет еще проще

Да в этом случае я отключил и работает, а что делать в случае с фотографией?
TokenMismatchException in VerifyCsrfToken.php line 68:

Изменено imediasun (18.02.2017 17:07:02)

Не в сети

#13 18.02.2017 17:21:06

Re: Ошибка при попытке постом отправить фотографии

DBR пишет:

Как варианта можно не мучаться с заголовком а добавить гет-параметр к урл с токеном.

Привидите пример пожалуйста

Не в сети

#14 19.02.2017 02:26:57

Re: Ошибка при попытке постом отправить фотографии

Опишите лучше проблему. Что делаете, чего хотите добиться и т.д., а также выложите файлы из проекта:
- файл роутов
- вьюху с которой отправляете фото,
-файл контролера
- js файл, где описывается метод отправки фото
Иначе ничего не понятно, задача по идее элементарная...

Не в сети

#15 19.02.2017 16:24:11

Re: Ошибка при попытке постом отправить фотографии

Вот адрес проекта http://industry.imedia.in.ua/admin/add_good
Вот роут
Route::post('/functions_images', 'FunctionsController@index');
Вот Контроллер
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class FunctionsController extends Controller
{
    //
    public function __construct(){
        $this->middleware('guest');
    }
    public function index(Request $request){


       if ($request->ajax()) {
            dump($request->input());
           
        }
    }
}
Вот VerifyCsrfToken.php
<?php

namespace App\Http\Middleware ;

    use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
    use Closure;
    class VerifyCsrfToken extends BaseVerifier
    {
        /**
         * The URIs that should be excluded from CSRF verification.
         *
         * @var array
         */
        protected $except = [

            "industry.loc/admin/add_good"
        ];

        public function handle($request, Closure $next){
            return parent::handle($request, $next);
        }

        /**
         * Determine if the session and input CSRF tokens match.
         *
         * @param \Illuminate\Http\Request $request
         * @return bool
         */
      protected function tokensMatch($request)
        {
            // If request is an ajax request, then check to see if token matches token provider in
            // the header. This way, we can use CSRF protection in ajax requests also.
            $token = $request->ajax() ? $request->header('X-CSRF-Token') : $request->input('_token');

            return $request->session()->token() == $token;
        }

    }



Вот мой файл вида это многоуровневая форма потому текста много,
но проблема возникает до сабмита формы, когда на одном из уровней
я пытаюсь загрузить фотографию через
jquery.fileupload

<div class="boxed">

    <!--CONTENT CONTAINER-->
    <!--===================================================-->
    <div id="content-container">

        <!--Page Title-->
        <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
        <div class="pageheader">
            <h3><i class="fa fa-home"></i> Forms Wizard </h3>
            <div class="breadcrumb-wrapper"> <span class="label">You are here:</span>
                <ol class="breadcrumb">
                    <li> <a href="#"> Home </a> </li>
                    <li class="active"> forms wizard </li>
                </ol>
            </div>
        </div>
        <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
        <!--End page title-->

        <!--Page content-->
        <!--===================================================-->
        <div id="page-content">

            <div class="row">
                <div class="col-md-12">
                    <section class="panel">
                        <div class="panel-heading">
                            <h3 class="panel-title"> Додати товар  </h3>
                        </div>
                        <div class="panel-body">
                            <!-- START Form Wizard -->
                            <form class="form-horizontal form-bordered" action="#" id="wizard">
                                <!-- Wizard Container 1 -->
                                <div class="wizard-title"> Інформація о товарі </div>
                                <div class="wizard-container">
                                    <div class="form-group">
                                        <div class="col-md-12">
                                            <h4 class="text-primary"> <i class="fa fa-sign-in"></i> Основна фнформація </h4>
                                            <p class="text-muted"> Інформація яка вноситься до бази данних </p>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label"> Назва товару : </label>
                                        <div class="col-sm-6">
                                            <input class="form-control" name="name" type="text" placeholder="Введить назву" />
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label"> Артикул : </label>
                                        <div class="col-sm-6">
                                            <input class="form-control" name="artikul" type="text" placeholder="Введить артикул" />
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label"> Категорія : </label>
                                        <div class="col-sm-6">
                                            <select class="form-control" name="category" placeholder="Виберить категорію" />
                                            <option>123</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <label class="col-sm-2 control-label"> Тип : </label>
                                        <div class="col-sm-6">
                                            <select class="form-control" name="type" placeholder="Виберить тип товару" />
                                            <option>123</option>
                                            </select>
                                        </div>
                                    </div>
                                    <div class=" form-group  ">
                                        <label class="col-sm-2 control-label"> Ціна : </label>
                                        <div class="col-sm-6 input-group mar-btm">
                                            <span class="input-group-addon"><i class="fa fa-dollar fa-lg"></i></span>
                                            <input class="form-control" type="text">
                                            <span class="input-group-addon">.00</span>
                                        </div>

                                    </div>

                                </div>
                                <!--/ Wizard Container 1 -->
                                <!-- Wizard Container 2 -->
                                <div class="wizard-title"> Опис характеристика товару </div>
                                <div class="wizard-container">
                                    <div class="form-group">
                                        <div class="col-md-12">
                                            <h4 class="semibold text-primary"> <i class="fa fa-user"></i> Опис товару </h4>
                                            <p class="text-muted"> Характеристика </p>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-md-6">
                                                <label>Опис товару: <span class="text-danger">*</span> </label>
                                                <textarea name="editor1"></textarea>
                                                <script>
                                                    CKEDITOR.replace( 'editor1' );
                                                </script>
                                            </div>

                                        </div>
                                    </div>

                                   
                                </div>
                                <!--/ Wizard Container 2 -->
                                <!-- Wizard Container 3 -->
                                <div class="wizard-title"> Фото товару </div>
                                <div class="wizard-container">






                                    <div id="appl_window">

                                        <div id="close_window" class="del_prod_btn"></div>
                                        <div id="add_photo">
                                            <br>
                                            <h6>Выберите
                                                <?
                                                $count_images=5;
                                                $image_width=1200;
                                                $image_height=800;
                                                $image_type='logo';
                                                $image_index=1;
                                                echo $count_images;
                                                if($count_images==1){
                                                    echo "фотографию";
                                                }
                                                else if($count_images>1 && $count_images<5){
                                                    echo "фотографии";
                                                }
                                                else if($count_images>4){
                                                    echo "фотографий";
                                                }
                                                ?>
                                                (не более 2М)
                                                <?=$image_width?>х<?=$image_height?>px -
                                                <?if($image_type=='logo'){
                                                    echo "логотип данного производителя";
                                                }
                                                else if($image_type=='door'){
                                                    echo "фотографии выбранной двери";
                                                }
                                                else if($image_type=='material' or $image_type=='material_edit'){
                                                    echo "фотографии материала";
                                                }
                                                ?>
                                            </h6>
                                            <label>Фотография*<span>&nbsp;&nbsp;&nbsp;       Чтобы добавить картинку, нажми обзор или просто перетащи в желтую область ниже &dArr;<hr></span></label>
                                            <br>
                                            <input type="file" name="my-pic[]" id="file-field3" class="image" multiple="multiple"/>
                                            <a id="cancel-all3">Отменить все</a>
                                            <div id="img-container3">
                                                <ul id="img-list3"></ul>
                                            </div>
                                            <div id="leftpanel">
                                                <div id="actions">

                                                   
                                                    <input type="hidden" name="lwidth" value="<?=$image_width?>">
                                                    <input type="hidden" name="lheight" value="<?=$image_height?>">
                                                    <input type="hidden" name="lproducers" value="/upload">
                                                    <input type="hidden" name="ltype" value="<?=$image_type?>">
                                                    <span id="info-count">Изображений не выбрано</span><br/>
                                                    Общий размер:<span id="info-size">0</span> Кб<br/><br/>
                                                </div>
                                                <div id="console3"></div>
                                                <div class="apply_btn"></div>
                                            </div>
                                        </div>
                                    </div>
<!------------------------------------------------------------------------------------------------------------------>
<!---НАЧАЛАСЬ ЗАГРУЗКА ФОТОГРАФИЙ-------------------->
<!------------------------------------------------------------------------------------------------------------------>
                                    <script>

                                      $(document).ready(function() {


                                            // Консоль
                                            var $console = $("#console3");

                                            // Инфа о выбранных файлах
                                            var countInfo = $("#info-count");
                                            var sizeInfo = $("#info-size");

                                            // ul-список, содержащий миниатюрки выбранных файлов
                                            var imgList = $('#img-list3');

                                            // Контейнер, куда можно помещать файлы методом drag and drop
                                            var dropBox = $('#img-container3');

                                            // Счетчик всех выбранных файлов и их размера
                                            var imgCount = 0;
                                            var imgSize = 0;


                                            // Стандарный input для файлов
                                            var fileInput = $('#file-field3');

                                            // Тестовый canvas
                                            /*  var canvas = document.getElementById('canvas');
                                             var ctx = canvas.getContext("2d");
                                             ctx.fillStyle = "rgb(128,128,128)";
                                             ctx.fillRect (0, 0, 150, 150);
                                             ctx.fillStyle = "rgb(200,0,0)";
                                             ctx.fillRect (10, 10, 55, 50);
                                             ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
                                             ctx.fillRect (30, 30, 55, 50); */


                                            ////////////////////////////////////////////////////////////////////////////
                                            // Подключаем и настраиваем плагин загрузки

                                            fileInput.damnUploader({
                                                // куда отправлять
                                                url: '/functions_images',
                                                // имитация имени поля с файлом (будет ключом в $_FILES, если используется PHP)
                                                fieldName:  'my-pic',
                                                // дополнительно: элемент, на который можно перетащить файлы (либо объект jQuery, либо селектор)
                                                dropBox: dropBox,
                                                // максимальное кол-во выбранных файлов (если не указано - без ограничений)
                                                limit: <?echo $count_images?>,
                                                // когда максимальное кол-во достигнуто (вызывается при каждой попытке добавить еще файлы)
                                                onLimitExceeded: function() {
                                                    log('Допустимое кол-во файлов уже выбрано');
                                                },
                                                // ручная обработка события выбора файла (в случае, если выбрано несколько, будет вызвано для каждого)
                                                // если обработчик возвращает true, файлы добавляются в очередь автоматически
                                                onSelect: function(file) {
                                                    addFileToQueue(file);
                                                    return false;
                                                },
                                                // когда все загружены
                                                onAllComplete: function() {

                                                    log('<span style="color: blue;">*** Все загрузки завершены! ***</span>');
                                                    imgCount = 0;
                                                    imgSize = 0;
                                                    updateInfo();

                                                }
                                            });



                                            ////////////////////////////////////////////////////////////////////////////
                                            // Вспомогательные функции

                                            // Вывод в консоль
                                            function log(str) {
                                                $('<p/>').html(str).prependTo($console);
                                            }

                                            // Вывод инфы о выбранных
                                            function updateInfo() {
                                                countInfo.text( (imgCount == 0) ? 'Изображений не выбрано' : ('Изображений выбрано: '+imgCount));
                                                sizeInfo.text( (imgSize == 0) ? '-' : Math.round(imgSize / 1024));
                                            }

                                            // Обновление progress bar'а
                                            function updateProgress(bar, value) {
                                                var width = bar.width();
                                                var bgrValue = -width + (value * (width / 100));
                                                bar.attr('rel', value).css('background-position', bgrValue+'px center').text(value+'%');
                                            }

                                            // преобразование формата dataURI в Blob-данные
                                            function dataURItoBlob(dataURI) {
                                                var BlobBuilder = (window.MSBlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder);
                                                if (!BlobBuilder) {
                                                    return false;
                                                }
                                                // convert base64 to raw binary data held in a string
                                                // doesn't handle URLEncoded DataURIs
                                                var pieces = dataURI.split(',');
                                                var byteString = (pieces[0].indexOf('base64') >= 0) ? atob(pieces[1]) : unescape(pieces[1]);
                                                // separate out the mime component
                                                var mimeString = pieces[0].split(':')[1].split(';')[0];
                                                // write the bytes of the string to an ArrayBuffer
                                                var ab = new ArrayBuffer(byteString.length);
                                                var ia = new Uint8Array(ab);
                                                for (var z = 0; z < byteString.length;z++) {
                                                    ia[z] = byteString.charCodeAt(i);
                                                }
                                                // write the ArrayBuffer to a blob, and you're done
                                                var bb = new BlobBuilder();
                                                bb.append(ab);
                                                return bb.getBlob(mimeString);
                                            }



                                            // Отображение выбраных файлов, создание миниатюр и ручное добавление в очередь загрузки.
                                            function addFileToQueue(file) {

                                                // Создаем элемент li и помещаем в него название, миниатюру и progress bar
                                                var li = $('<li/>').appendTo(imgList);
                                                /* var title = $('<div/>').text(file.name+' ').appendTo(li); */
                                                var cancelButton = $('<a/>').attr({
                                                    href: '#cancel',
                                                    title: 'отменить'
                                                }).html('<img height="15" width="15" alt="X" src="/img/deleteIcon.png">').appendTo(/* title */li);

                                                // Если браузер поддерживает выбор файлов (иначе передается специальный параметр fake,
                                                // обозночающий, что переданный параметр на самом деле лишь имитация настоящего File)
                                                if(!file.fake) {

                                                    // Отсеиваем не картинки
                                                    var imageType = /video.*/;
                                                    var imageType2 = /image.*/;
                                                    if (!file.type.match(imageType) && !file.type.match(imageType2)) {
                                                        log('Файл отсеян: `'+file.name+'` (тип '+file.type+')');
                                                        return true;
                                                    }

                                                    // Добавляем картинку и прогрессбар в текущий элемент списка
                                                    var div = $('<div/>').addClass('photo_frame').attr('rel', '0').appendTo(li);
                                                    var img = $('<img/>').appendTo(li);
                                                    /* var pBar = $('<div/>').addClass('progress').attr('rel', '0').text('0%').appendTo(li); */
                                                    // Создаем объект FileReader и по завершении чтения файла, отображаем миниатюру и обновляем
                                                    // инфу обо всех файлах (только в браузерах, подерживающих FileReader)
                                                    if($.support.fileReading) {
                                                        var reader = new FileReader();
                                                        reader.onload = (function(aImg) {
                                                            return function(e) {

                                                                aImg.attr('src', e.target.result);

                                                                aImg.attr('height', 100);
                                                            };
                                                        })(img);
                                                        reader.readAsDataURL(file);
                                                    }

                                                    log('Картинка добавлена: `'+file.name + '` (' +Math.round(file.size / 1024) + ' Кб)');
                                                    imgSize += file.size;
                                                } else {
                                                    log('Файл добавлен: '+file.name);
                                                }

                                                imgCount++;
                                                updateInfo();

                                                // Создаем объект загрузки
                                                var uploadItem = {
                                                    file: file,
                                                    /*  onProgress: function(percents) {
                                                     updateProgress(pBar, percents);
                                                     }, */
                                                    onComplete: function(successfully, data, errorCode) {

                                                        if(successfully) {

                                                            log('Файл `'+this.file.name+'` загружен, полученные данные:<br/>*****<br/>'+data+'<br/>*****');
                                                        } else{
                                                            if(!this.cancelled) {
                                                                log('<span style="color:red;">Файл `'+this.file.name+'`: ошибка при загрузке. Код: '+errorCode+'</span>');
                                                            }
                                                        }
                                                    }
                                                };

                                                // ... и помещаем его в очередь
                                                var queueId = fileInput.damnUploader('addItem', uploadItem);

                                                // обработчик нажатия ссылки "отмена"
                                                cancelButton.click(function() {
                                                    fileInput.damnUploader('cancel', queueId);
                                                    li.remove();
                                                    imgCount--;
                                                    imgSize -= file.fake ? 0 : file.size;
                                                    updateInfo();
                                                    log(file.name+' удален из очереди');
                                                    return false;
                                                });

                                                return uploadItem;
                                            }




                                            ////////////////////////////////////////////////////////////////////////////
                                            // Обработчики событий


                                            // Обработка событий drag and drop при перетаскивании файлов на элемент dropBox
                                            dropBox.bind({
                                                dragenter: function() {
                                                    $(this).addClass('highlighted');
                                                    return false;
                                                },
                                                dragover: function() {
                                                    return false;
                                                },
                                                dragleave: function() {
                                                    $(this).removeClass('highlighted');
                                                    return false;
                                                }
                                            });


                                            // Обаботка события нажатия на кнопку "Загрузить все".
                                            // стартуем все загрузки
                                            $(".apply_btn").click(function() {
                                                fileInput.damnUploader('startUpload');

                                            });


                                            // Обработка события нажатия на кнопку "Отменить все"
                                            $("#cancel-all3").click(function(){
                                                fileInput.damnUploader('cancelAll');
                                                imgCount = 0;
                                                imgSize = 0;
                                                updateInfo();
                                                log('*** Все загрузки отменены ***');
                                                imgList.empty();
                                            });


                                            // Обработка нажатия на тестовую канву
                                            /*     $(canvas).click(function() {
                                             var blobData;
                                             if (canvas.toBlob) {
                                             // ожидается, что вскоре браузерами будет поддерживаться метод toBlob() для объектов Canvas
                                             blobData = canvas.toBlob();
                                             } else {
                                             // ... а пока - конвертируем вручную из dataURI
                                             blobData = dataURItoBlob(canvas.toDataURL('image/png'));
                                             }
                                             if (blobData === false) {
                                             log("Ваш браузер не поддерживает BlobBuilder");
                                             return ;
                                             }
                                             addFileToQueue(blobData)
                                             }); */




                                            ////////////////////////////////////////////////////////////////////////////
                                            // Проверка поддержки File API, FormData и FileReader

                                            if(!$.support.fileSelecting) {
                                                log('Ваш браузер не поддерживает выбор файлов (загрузка будет осуществлена обычной отправкой формы)');
                                                $("#dropBox-label").text('если бы ты использовал хороший браузер, файлы можно было бы перетаскивать прямо в область ниже!');
                                            } else {
                                                if(!$.support.fileReading) {
                                                    log('* Ваш браузер не умеет читать содержимое файлов (миниатюрки не будут показаны)');
                                                }
                                                if(!$.support.uploadControl) {
                                                    log('* Ваш браузер не умеет следить за процессом загрузки (progressbar не работает)');
                                                }
                                                if(!$.support.fileSending) {
                                                    log('* Ваш браузер не поддерживает объект FormData (отправка с ручной формировкой запроса)');
                                                }
                                                log('Выбор файлов поддерживается');
                                            }
                                            log('*** Проверка поддержки ***');


                                        });

                               
                                    </script>

<!------------------------------------------------------------------------------------------------------------------>
<!---ЗАКОНЧИЛАСЬ ЗАГРУЗКА ФОТОГРАФИЙ-------------------->
<!------------------------------------------------------------------------------------------------------------------>


                                </div>
                                <!--/ Wizard Container 3 -->
                                <!-- Wizard Container 4 -->
                                <div class="wizard-title"> Відео товару </div>
                                <div class="wizard-container">
                                    <div class="form-group">
                                        <div class="col-md-12">
                                            <h4 class="semibold text-primary"> <i class="fa fa-cog"></i> Work experience </h4>
                                            <p class="text-muted"> Let us know about your work experience </p>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-md-6">
                                                <label>Company: </label>
                                                <input type="text" name="Work experience" class="form-control" placeholder="Work experience" />
                                            </div>
                                            <div class="col-md-6">
                                                <label> Country: </label>
                                                <input type="text" name="Country" class="form-control" placeholder="Choose a Country" />
                                            </div>
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="row">
                                            <div class="col-md-6">
                                                <label> Position: </label>
                                                <input type="text" name="Your Position" class="form-control" placeholder="Your Position" />
                                            </div>
                                            <div class="col-md-3">
                                                <label> From: </label>
                                                <div class="row">
                                                    <div class="col-sm-8">
                                                        <select name="month" class="form-control">
                                                            <option value="">Month</option>
                                                            <option value="1">January</option>
                                                            <option value="2">February</option>
                                                            <option value="3">March</option>
                                                            <option value="4">April</option>
                                                            <option value="5">May</option>
                                                            <option value="6">June</option>
                                                            <option value="7">July</option>
                                                            <option value="8">August</option>
                                                            <option value="9">September</option>
                                                            <option value="10">October</option>
                                                            <option value="11">November</option>
                                                            <option value="12">December</option>
                                                        </select>
                                                    </div>
                                                    <div class="col-sm-4">
                                                        <input type="text" name="University-Country" class="form-control" placeholder="Year" />
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col-md-3">
                                                <label> To: </label>
                                                <div class="row">
                                                    <div class="col-sm-8">
                                                        <select name="month" class="form-control">
                                                            <option value="">Month</option>
                                                            <option value="1">January</option>
                                                            <option value="2">February</option>
                                                            <option value="3">March</option>
                                                            <option value="4">April</option>
                                                            <option value="5">May</option>
                                                            <option value="6">June</option>
                                                            <option value="7">July</option>
                                                            <option value="8">August</option>
                                                            <option value="9">September</option>
                                                            <option value="10">October</option>
                                                            <option value="11">November</option>
                                                            <option value="12">December</option>
                                                        </select>
                                                    </div>
                                                    <div class="col-sm-4">
                                                        <input type="text" name="University-Country" class="form-control" placeholder="Year" />
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <!-- Wizard Container 4 -->
                            </form>
                            <!--/ END Form Wizard -->
                        </div>
                    </section>
                </div>
            </div>


        </div>
        <!--===================================================-->
        <!--End page content-->

    </div>
    <!--===================================================-->
    <!--END CONTENT CONTAINER-->



</div>

Изменено imediasun (19.02.2017 16:33:23)

Не в сети

#16 19.02.2017 18:41:23

skiphog
Откуда: Киров, Россия
Сообщений: 26

Re: Ошибка при попытке постом отправить фотографии

Ваш damnUploader не отправляет никакие кастомные заголовки, в том числе и не отправляет X-Requested-With (Ну вот так задумал автор)
Если вы загружаете что-то этим аплоадером, то проверять на if ($request->ajax()) нельзя, - всегда будет false.

Можно поступить по варварски big_smile

Не забываем в хедере указать токен <meta name="csrf-token" content="{{ csrf_token() }}" />

Заходите в файл jquery.damnuploader.js и на 279 строке, после xhr.open("POST", url); вставляете

xhr.setRequestHeader('X-CSRF-TOKEN', $('meta[name="csrf-token"]').attr('content'));

Если хотите на сервере проверять на ajax, то тогда нужно еще добавить строчку

xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

---
Сохраняете. Чистите кеш браузера. Пробуете smile

Не в сети

#17 19.02.2017 18:51:42

Re: Ошибка при попытке постом отправить фотографии

надо отдать должное skiphog, я когда увидел эту портянку – пролистнул не читая. нужна определённая усидчивость и искреннее желание помочь, чтобы посидеть и потратить время на разбор всего этого добра smile

Не в сети

#18 19.02.2017 19:11:44

Re: Ошибка при попытке постом отправить фотографии

Да спасибо большое за искренное желание помочь и за усидчивость но я выполнил как вы сказали и все равно
TokenMismatchException in VerifyCsrfToken.php line 68:
Может дело действительно в том что есть еще и XSRF-Token если можно свяжитесь по скайпу может нагляднее получится помочь, весьма благодарен за помощь СКАЙП imediasun Очень насущная проблема

Изменено imediasun (19.02.2017 19:17:23)

Не в сети

#19 19.02.2017 19:47:38

Re: Ошибка при попытке постом отправить фотографии

Все решено спасибо Алексею

Не в сети

Подвал раздела