Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
надо было кеш сбросить артисаном
метод формы поправил на POST
<form enctype="multipart/form-data" action="fileUpload" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input name="photo" type="file" />
<button>Предложить фото</button>
</form>
маршрут выглядит так
Route::resource('fileUpload', 'CompgenController@fileUpload');
контроллер
public function fileUpload(Request $request){
$input = $request->input('photo');
$file = Input::file('photo');
dd($file);die;
$save_path = $this->save_path_upload.$request->input('photo');
Image::make($request->input('photo'))->save($save_path);
}
странно, что в $_REQUEST лежит этот параметр, но в $_FILES Нету
Версия 5.0
в шаблоне
<form enctype="multipart/form-data" action="fileUpload" method="get">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input name="photo" type="file" />
<button>Предложить фото</button>
</form>
в контроллере
public function fileUpload(Request $request){
$input = $request->input('photo');
$file = Input::file('photo');
$save_path = $this->save_path_upload.$request->input('photo');
Image::make($request->input('photo'))->save($save_path);
}
почему Input::file('photo') возвращает null?
а вот в $input лежит строкове значение файла
У тебя в базе хранится путь до картинки от корня сайта (/img/Ф.png). Это как раз то что нужно браузерам что бы запросить кратинку и получить ее.
А при работе с картинкой из кода тебе нужно указывать или относительный путь (без слеша в начале) или полный путь до картинки.
Сейчас же у тебя получается что ты пытаешься прочитать картинку из папки img которая лежит в корне файловой системы.
но у меня переадресация же в папку public из корня идет
Я не уверен, что тема вообще относится к Laravel, но все-таки спрошу.
есть VPS, на котором настроены 3 хоста - Vitya Kostia и Main
общая БД, в которой хранятся ссылки на изображения. Все картинки хранятся в Main, в папке /public/img
На хостах Vitya и Kostia эта папка хранится как ссылочная на папку img хоста Main.
в чем, собственно, проблема.
на вход поступает ссылки на картинки и я пытаюсь открыть их
public function collageImg()
{
$images = Input::except('_token');
foreach($images as $img){
fopen($img, "r");
}
dd($images);die;
}
на что получаю
fopen(/img/Ф.png): failed to open stream: No such file or directory
при этом, если я в blade-шаблоне вывожу
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@foreach($images as $img)
<input class="image" type="image" src='{{$img}}' />
@endforeach
то картинки выводятся.
P.s. права на папку 777 стоят
return view('perehod', ['images' => $images]);
помогло, спасибо
передаю в контроллере вот так
$images = $compgens->getCompgen();
return view('perehod')->with('images',$images);
в $images массив вида
Array ( [0] => /home/img/С.png [1] => /home/img/У.png [2] => /home/img/Р.png )
получаю ошибку
htmlentities() expects parameter 1 to be string, array given
как передать массив?
При попытке послать простой sql запрос получаю ошибку
Database [mydb] not configured.
запрос отправляю в контроллере
public function perehod(Request $request){
$langs = DB::connection('mydb')->select('select * from lang');
return view('perehod', array(["fields" => $request->input()], ['lagns' => $langs] ) );
}
конфиги прописаны и в config/database.php и в .env
Может быть проблема в том, что я руками создавал в phpmyadmin и БД и таблицы?