Laravel по-русски

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

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

#1 18.10.2017 12:15:16

Не отправляется файл через форму

делал форму с отправкой файлов и последующей работой с файловой системой/бд - всё работало.
спустя неделю копания в ларке заметил, что файлы уже не загружаются.
форма:

<form id='form' enctype="multipart/form-data" action="contact/sendMessage" method="get">

               <div class="col-sm-12">
                 <span class="input input--ruri">
	        	     <input name='fio' class="input__field input__field--ruri" type="text" required>
			         <label class="input__label input__label--ruri" >
        			     <span class="input__label-content input__label-content--ruri">ФИО *</span>
		        	 </label>
                  </span>
               </div>

               <div class="col-sm-6">
                 <span class="input input--ruri">
	        	     <input name='email' class="input__field input__field--ruri" type="text" required>
			         <label class="input__label input__label--ruri" >
        			     <span class="input__label-content input__label-content--ruri">Почта *</span>
		        	 </label>
                  </span>
                </div>

               <div class="col-sm-6">
                 <span class="input input--ruri">
	        	     <input name='telephone' class="input__field input__field--ruri" type="text" required>
			         <label class="input__label input__label--ruri" >
        			     <span class="input__label-content input__label-content--ruri">Номер телефона *</span>
		        	 </label>
                  </span>
                </div>

                <div class="col-sm-12">
                 <span class="input input--ruri filled input--filled">
	        	     <input name='attachmentFile' class="input__field input__field--ruri" type="file">
			         <label class="input__label input__label--ruri" >
        			     <span class="input__label-content input__label-content--ruri">Прикрепить файл</span>
		        	 </label>
                  </span>
                </div>

                        {{ csrf_field() }}
                <div class="col-sm-12"><input name='submit' type="submit" value="Отправить"></div>
             </form>

route: Route::get('/contact/sendMessage', 'ContactFormValidationController@validateForm');

controller:

 public function validateForm(Request $request)
    {        
        dump($request->hasFile('attachmentFile'));
        dump($request); die();
....

result:
LycMGmi.png

что я мог сломать?
устанавливал только wysiwyg Summernote, но подключаемые скрипты уже убрал

Изменено Anque (18.10.2017 12:16:27)

Не в сети

#2 18.10.2017 12:45:34

Re: Не отправляется файл через форму

создай отдельную форму-страницу, максимально простую, создай для нее отдельный контроллер и проверь загрузку.
если не работает - дело в конфигах пхп.

Не в сети

#3 18.10.2017 13:16:26

Re: Не отправляется файл через форму

получаю false.
какие проблемы могут быть с конфигами?

Не в сети

#4 18.10.2017 13:35:15

Re: Не отправляется файл через форму

в новой форме проверил через $_FILES:

<!DOCTYPE HTML>
<html>
    <head>
    </head>
    <body>
        <h1>TEST</h1>
        <form action="/testform.php" enctype="multipart/form-data" method="post">
             <input type="file" name="testfile">
             <input type="submit">
        </form>
    </body>
</html>
....

<?php

var_dump($_FILES);die();
?>
....
array(1) { ["testfile"]=> array(5) { ["name"]=> string(6) "1c.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(39) "C:\OpenServer\userdata\temp\phpDC29.tmp" ["error"]=> int(0) ["size"]=> int(29951) } }

Изменено Anque (18.10.2017 13:37:27)

Не в сети

#5 18.10.2017 14:10:42

Re: Не отправляется файл через форму

с чистого листа:
1. поставил новую ларку в новую папку  composer create-project --prefer-dist laravel/laravel test
2. создал проект в netbeans
3. сделал роуты, форму и контроллер

Route::get('/', function () {
    return view('form');
});
Route::get('/testform', 'TestController@index');
________________________________
<html>
<head>
    </head>
    <body>
        <h1>TEST</h1>
        <form action="testform" enctype="multipart/form-data" method="get">
             <input type="file" name="testfile">
             <input type="submit">
        </form>
    </body>
</html>
________________________________
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class TestController extends Controller
{
    public function index(Request $request)
    {
        dump($request->hasFile('testfile')); die();
        return view('form', compact('events'));
    }
    
}

на выводе:
false

Изменено Anque (18.10.2017 14:11:01)

Не в сети

#6 18.10.2017 15:06:35

Re: Не отправляется файл через форму

Исправь метод с get на post в последнем примере.
Сразу не заметил.
Нельзя так заливать файлы.

Изменено covobo (18.10.2017 15:07:02)

Не в сети

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