<div class="row">
<div class="col my-auto">
<input type="file" name="user_image[]" id="user_image" multiple />
</div>
<div class="col my-auto">
<span id="user_uploaded_image"></span>
</div>
</div>
<?php
// Перебрать файлы
// Применить к ним все проверки (применить функции)
// Загрузить если нет ошибок. (не загружать все или только тот который не прошел проверку?)
// Проверка картинки на JPG
function imageCheck($imageTmpName, $imageName, $i) {
$imageInfo = getimagesize($imageTmpName);
list($width, $height, $type, $gabarite, $bits, $channels, $mime) = $imageInfo;
// Создадим ресурс FileInfo
$fi = finfo_open(FILEINFO_MIME_TYPE);
// Получим MIME-тип
$filePath = $imageTmpName;
$mime = finfo_file($fi, $filePath);
// Проверим ключевое слово image (image/jpeg, image/png и т. д.)
if (strpos($mime, 'image/jpeg') === false) {
$errors[] = "Ошибка! Допускаются только картинки в формате jpg!";
}
else {
$image_extension = 'jpg';
}
// Проверяем вес картинки
$volume = $imageTmpName;
if($volume > 2097152){
$errors[] = "Ошибка! Файл превышает допустимый объем 2 мегабайта!";
}
if(!$errors){
// Переименовываем картинку.
$_FILES['userfile']['name'][$i] = md5(time() . uniqid($more_entropy=true)) . "." . $image_extension;
return $_FILES['userfile']['name'][$i];
}
else {
return $errors;
}
}
if(!empty($_FILES['userfile']['name'])){
// Вместо 0 счетчик.
$i = 0;
$check = imageCheck($_FILES['userfile']['tmp_name'][$i], $_FILES['userfile']['name'][$i], $i);
if(!is_array($check)){
echo "Ура!";
}
else {
echo "Ошибка!";
}
}
?>
<html>
<div style="width:800px; margin:auto; padding-top:100px;">
<?php
echo "<pre>";
print_r($_FILES['userfile']['name']);
print_r($_FILES['userfile']['tmp_name']);
print_r($_FILES['userfile']['type']);
echo "</pre>";
?>
<hr>
<form action="" method="post" enctype="multipart/form-data">
Файлы:
<br/><br/>
<input name="userfile[]" type="file" multiple/><br /><br />
<input type="submit" value="Отправить" />
</form></div>
</html>
function upload_image()
{
if(isset($_FILES['user_image']))
{
for($i=0;$i<count($_FILES["user_image"]["name"]);$i++){
$extension = explode('.', $_FILES['user_image']['name'][$i]);
$new_name = rand() . '.' . $extension[1];
$destination = '../portfolio/upload/' . $new_name;
$thimbDestination = '../portfolio/upload/thumb/' . $new_name;
move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $destination);
imageResize($destination, 300);
$file_tmp = $_FILES['user_image']['tmp_name'][$i];
copy($file_tmp, $thimbDestination);
return $new_name;
}
}
}
function imageResize($file_path, $new_width){
//Получаем ширину и высоту исходника
list($w, $h) = getimagesize($file_path);
//Получаем коэфицент соотношения сторон
$proportions = $h / $w;
$new_w = $new_width;
$new_h = $new_w * $proportions; // Получаем высоту уменьшенной картинки пропорционально новой ширине
$thumb = imagecreatetruecolor($new_w, $new_h);
$source = imagecreatefromjpeg($file_path);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
imagejpeg($thumb, $_FILES['user_image']['tmp_name']);
return $_FILES['user_image']['tmp_name'];
imagedestroy($thumb);
}
$i<count($_FILES["user_image"]["name"])
function upload_image()
{
if(isset($_FILES['user_image']))
{
// Count total files
$countfiles = count($_FILES['user_image']['name']);
for($i=0;$i<$countfiles;$i++){
$extension = explode('.', $_FILES['user_image']['name'][$i]);
$new_name = rand() . '.' . $extension[1];
$destination = '../portfolio/upload/' . $new_name;
$thimbDestination = '../portfolio/upload/thumb/' . $new_name;
move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $destination);
imageResize($destination, 300);
$file_tmp = $_FILES['user_image']['tmp_name'][$i];
copy($file_tmp, $thimbDestination);
}
return $new_name;
}
}
function imageResize($file_path, $new_width){
//Получаем ширину и высоту исходника
list($w, $h) = getimagesize($file_path);
//Получаем коэфицент соотношения сторон
$proportions = $h / $w;
$new_w = $new_width;
$new_h = $new_w * $proportions; // Получаем высоту уменьшенной картинки пропорционально новой ширине
$thumb = imagecreatetruecolor($new_w, $new_h);
$source = imagecreatefromjpeg($file_path);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
imagejpeg($thumb, $_FILES['user_image']['tmp_name']);
return $_FILES['user_image']['tmp_name'];
imagedestroy($thumb);
}
imagejpeg($thumb, $_FILES['user_image']['tmp_name']);
return $_FILES['user_image']['tmp_name'];
imageResize($destination, 300);
$file_tmp = $_FILES['user_image']['tmp_name'][$i];
copy($file_tmp, $thimbDestination);
<form method="post" id="user_form" enctype="multipart/form-data">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Добавление фото</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<label>Выбрать фото:</label>
<br />
<div class="row">
<div class="col my-auto">
<input type="file" name="user_image[]" id="user_image" multiple/>
</div>
<div class="col my-auto">
<span id="user_uploaded_image"></span>
</div>
</div>
</div>
<div class="modal-footer">
<input type="hidden" name="user_id" id="user_id" />
<input type="hidden" name="operation" id="operation" />
<input type="submit" name="action" id="action" class="btn btn-success" value="Добавить" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Закрыть</button>
</div>
</div>
</form>
function upload_image()
{
if(isset($_FILES['user_image']))
{
// Count total files
$countfiles = count($_FILES['user_image']['name']);
for($i=0;$i<$countfiles;$i++){
$extension = explode('.', $_FILES['user_image']['name'][$i]);
$new_name = rand() . '.' . $extension[1];
$destination = '../portfolio/upload/' . $new_name;
$thimbDestination = '../portfolio/upload/thumb/' . $new_name;
move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $destination);
imageResize($destination, 300);
$file_tmp = $_FILES['user_image']['tmp_name'][$i];
copy($file_tmp, $thimbDestination);
}
return $new_name;
}
}
function imageResize($file_path, $new_width){
//Получаем ширину и высоту исходника
list($w, $h) = getimagesize($file_path);
//Получаем коэфицент соотношения сторон
$proportions = $h / $w;
$new_w = $new_width;
$new_h = $new_w * $proportions; // Получаем высоту уменьшенной картинки пропорционально новой ширине
$thumb = imagecreatetruecolor($new_w, $new_h);
$source = imagecreatefromjpeg($file_path);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
imagejpeg($thumb, $_FILES['user_image']['tmp_name']);
return $_FILES['user_image']['tmp_name'];
imagedestroy($thumb);
}
<?php
function resize($source, $destination, $width){
$image = new Imagick($source);
// Получаем соотношение сторон для пропорционального ресайза.
$d = $image->getImageGeometry();
$w = $d['width'];
$h = $d['height'];
$aspectratio = $h / $w;
// Ресайзим и сохраняем.
$image->resizeImage($width, $width*$aspectratio, Imagick::FILTER_LANCZOS, 1);
$image->writeImage($destination);
$image->destroy();
}
resize('magic.jpg', 'magic_new.jpg', 800);
function upload_image()
{
if(isset($_FILES['user_image']))
{
// Count total files
$countfiles = count($_FILES['user_image']['name']);
for($i=0;$i<$countfiles;$i++){
$extension = explode('.', $_FILES['user_image']['name'][$i]);
$new_name = rand() . '.' . $extension[1];
$destination = '../portfolio/upload/' . $new_name;
$thumbDestination = '../portfolio/upload/thumb/' . $new_name;
move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $destination);
resize($destination, $thumbDestination, 300);
}
return $new_name;
}
}
function resize($source, $destination, $width){
$image = new Imagick($source);
// Получаем соотношение сторон для пропорционального ресайза.
$d = $image->getImageGeometry();
$w = $d['width'];
$h = $d['height'];
$aspectratio = $h / $w;
// Ресайзим и сохраняем.
$image->resizeImage($width, $width*$aspectratio, Imagick::FILTER_LANCZOS, 1);
$image->writeImage($destination);
$image->destroy();
}
if($_POST["operation"] == "Add")
{
$image = '';
if($_FILES["user_image"]["name"] != '')
{
$image = upload_image();
}
$statement = $connection->prepare("
INSERT INTO portfolio (image, image_mini)
VALUES (:image, :image_mini)
");
$result = $statement->execute(
array(
':image' => $image,
':image_mini' => $image
)
);
if(!empty($result))
{
echo 'Фото Добавлено';
}
}
$result = $statement->execute(
array(
':image' => $image,
':image_mini' => $image
)
);
function upload_image()
{
if(isset($_FILES['user_image']))
{
// Count total files
$countfiles = count($_FILES['user_image']['name']);
for($i=0;$i<$countfiles;$i++){
$extension = explode('.', $_FILES['user_image']['name'][$i]);
$new_name = rand() . '.' . $extension[1];
$destination = '../portfolio/upload/' . $new_name;
$thumbDestination = '../portfolio/upload/thumb/' . $new_name;
move_uploaded_file($_FILES['user_image']['tmp_name'][$i], $destination);
resize($destination, $thumbDestination, 300);
}
return $new_name;
}
}
function resize($source, $destination, $width){
$image = new Imagick($source);
// Получаем соотношение сторон для пропорционального ресайза.
$d = $image->getImageGeometry();
$w = $d['width'];
$h = $d['height'];
$aspectratio = $h / $w;
// Ресайзим и сохраняем.
$image->resizeImage($width, $width*$aspectratio, Imagick::FILTER_LANCZOS, 1);
$image->writeImage($destination);
$image->destroy();
}