Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте, при загрузке файла exe выдает ошибку. Саму ошибку показать не могу. Работаю с Ajax результат в формfте Json. пытаюсь вывести ошибку через jsonp в jquery ничего не выводит, хотя любая другая ошибка выводится. И ошибка происходит только на файлах которые запускают программу. Например есть файл для удаления с расширением exe. Так его не пропускает и пишет сообщение. А на файл запуска реагирует своеобразно. Проверял а нескольких файлах. Реакция одинакова.
Не в сети
Не в сети
Разобрался вроде. Отобразил ошибку, пишет что размер файла превышен. И сразу хотел спросить как узнать размер файла именно в laravel.
Изменено webbeg (18.10.2013 13:13:37)
Не в сети
Размер файла или размер лимита загрузки? Первое — File::size(), второе — ini_get('upload_max_size'), но здесь есть нюансы — советую прочитать раздел в документации, там всё понятно расписано.
Не в сети
Спасибо, это понятно. Вот еще вопрос. При использовании данного класса или просто функции. Выдает ошибку stat() [<a href='function.stat'>function.stat</a>]: stat failed for файл.png . Я где то читал что возможно из-за того что путь относительный, потомe-что права на файл и папку 777. мне нужно проверить размер перед загрузкой. делал с помощью правил валидации, так вообще не реагирует на правило max. Вот правило.
public static $rulesFile = array(
'file' => 'image|mimes:jpeg,png,jpg,gif|max:2048'
);
Не в сети
Спасибо, это понятно. Вот еще вопрос. При использовании данного класса или просто функции. Выдает ошибку stat() [<a href='function.stat'>function.stat</a>]: stat failed for файл.png . Я где то читал что возможно из-за того что путь относительный, потомe-что права на файл и папку 777. мне нужно проверить размер перед загрузкой. делал с помощью правил валидации, так вообще не реагирует на правило max. Вот правило.
public static $rulesFile = array( 'file' => 'image|mimes:jpeg,png,jpg,gif|max:2048' );
Вот так пока решил делать
$file = Input::file('file');
if($file-> getClientSize() > 2048){
return Response::json(array('error'=> 'Ошибка при загрузке файла'));
}
Не в сети
Все же опять проблема с этими файлами, размер файла определяется, все отлично. Но проверил снова на файлах программ. Вот имеено с файлами запуска происходит ошибка и DjVu (возможно еще какие-нибудь) теперь выдает ошибку сессии failed to start the session because headers have already be sent by причем с другими файлами нормально работают. Сессия уже существует потому-что пользователь залогинен. Сперва думал что из-за размера, но загрузил архив rar но нет, выдало обычную ошибку которую я указал. Я уже незнаю куда шагать. Кстати написал простой скрипт на php, загружаю тотже файл также ошибка сессии.
Не в сети
Не в сети
вот пример кода
file.php
<?php session_start(); ?>
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>
upload.php
<?php session_start();?>
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if($_FILES["filename"]["size"] > 1024*3*1024){
echo ("Размер файла превышает три мегабайта");
}
if(is_uploaded_file($_FILES["filename"]["tmp_name"])){
move_uploaded_file($_FILES["filename"]["tmp_name"], "file/".$_FILES["filename"]["name"]);
} else {
echo("Ошибка загрузки файла");
}
?>
</body>
</html>
Вот еще еще такая ошибка
Warning: POST Content-Length of 9152722 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Изменено webbeg (19.10.2013 10:01:21)
Не в сети
Не в сети
Эта ошибка на обычном файле,в laravel нет. В laravel с сесиями что - то. Вот такая ошиька Failed to start the session because headers have already been sent by “” at line 0
Не в сети
Не в сети
У меня utf 8 без бом. Перед выводом ничего нет. Некоторые файлы грузятся хорошо, а некоторые с ошибкой.
Стоит вот такая проверка, но все равно.
if($file-> getError() == 1){
return Response::json(array('error'=> 'Ошибка при загрузке'));
}elseif($file -> getClientSize() > 1024*2*1024){
return Response::json(array('error'=> 'Размер файл превышает 2mb'));
}
Не в сети
Еще один вопросик, можно избавиться от записи redirecting to при редиректе, на просто редирект как при хедере. Без этой записи.
Не в сети
Не в сети
В принципе не мешает, но лучше бы убрать. Использую header пишет что заголовки уже отправлены.
Не в сети
Не в сети
Еще вопрос. Как в laravel использовать сырой запрос, что бы он вернул массив. Использую DB::raw() он возвращает только сам запрос. Как в laravel его обработать и вернуть данные из базы. делаю расширенный поиск. Очень много полей И каждый раз делать новый запрос неохота. Да и месат много занимаем. Думаю сделать так. Что вывести сам запрос а потом подставлять данные из get в Where и потом гововый запрос прогнать через метод который вернет массив полей.
public function filter_workers($data=array()){
$where = "";
if(isset($data['experience']) && !empty($data['experience'])){
$where = $this -> addWhere($where, "`user_experience` = 2 Годя'");
}
$sql = "SELECT * FROM `jsdfsd_anketa` LEFT JOIN `jsdfsd_users` ON `jsdfsd_anketa`.`user_id` = `jsdfsd_users`.`id` LEFT JOIN `jsdfsd_country`ON `jsdfsd_users`.`user_country` = `jsdfsd_country`.`id` LEFT JOIN `jsdfsd_region`ON `jsdfsd_users`.`user_region` = `jsdfsd_region`.`id` LEFT JOIN `jsdfsd_city`ON `jsdfsd_users`.`user_city` = `jsdfsd_city`.`id`";
if ($where) $sql .= " WHERE $where";
return DB::raw( $sql );
}
Что то вроде этого.
Не в сети
Все разобрался как как бы. Нужно запрос обернуть в DB::select();
Не в сети
Не рекомендую строить сырой SQL — едва ли у вас там тысячи запросов в одном скрипте, а вот шансов на ошибку становится куда больше. Про SQL-инъекции не забываем. Я бы просто передавал в addWhere() сам объект запроса (Eloquent), он бы добавлял туда поля через where('a', '=', 'b') и подобные методы и всё. Нет инъекций, данные отдельно от запроса, запрос кэшируется на стороне БД. PHP собирает мусор в виде ненужных объектов. Все сыты и волки целы.
Не в сети
Страницы 1