[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите, братцы...Не работает ресайс
Страницы: 1, 2, 3
kostr
Не хотите через GraphicsMagick попробовать? Намного лучше GD, и быстрее.

вот тут описание:
GraphicsMagick
TMM00
Цитата (Игорь_Vasinsky @ 8.02.2016 - 20:03)
TMM00
ты топик читаешь? люди время тратят, пишут тебе решения.

где решения? единственное кто-то предлагал через класс...
но для меня это рановато. это как ... как ребёнку передвинуть холодильник.
TMM00
Цитата (kostr @ 8.02.2016 - 20:06)
Не хотите через GraphicsMagick попробовать? Намного лучше GD, и быстрее.

вот тут описание:
GraphicsMagick

может бы и хотел. локально - проблем нет, а вот на хостинге...
Игорь_Vasinsky
мда...

http://phpforum.su/index.php?act=Print&cli...limin=6&limit=1

первый и последний раз.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
TMM00
Цитата (Игорь_Vasinsky @ 8.02.2016 - 20:15)
мда...

http://phpforum.su/index.php?act=Print&cli...limin=6&limit=1

первый и последний раз.

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

list($w_i, $h_i, $type) = getimagesize($file_input);
if (!$w_i || !$h_i) {
echo 'Невозможно получить длину и ширину изображения';
return;
}
TMM00
если я правильно понял, этот участок
if(file_put_contents($uploaddir.$randomName, $decodedData)) {
// Записываем данные изображения в БД
resizeimg($uploaddir.$randomName, $uploaddir.$randomNameSmall, 100, 75);
$query = "INSERT INTO images (date,catalog,filename,id_news, small) VALUES (NOW(),'$uploaddir','$randomName','$idnew', '$randomNameSmall')";
$loadcontent = mysqli_query($dbc, $query);

}

а конкретно
if(file_put_contents($uploaddir.$randomName, $decodedData)) {

уже создал файл!? и если создал - идёт дальнейшая "работа"!? я правильно понял?

Может можно как-то потестить?
Guest
file_put_contents($uploaddir.$randomName, $decodedData)

Может быть в $decodedData содержится фигня какая-то?

Покажи весь код.
TMM00
Цитата (Guest @ 8.02.2016 - 20:59)
file_put_contents($uploaddir.$randomName, $decodedData)

Может быть в $decodedData содержится фигня какая-то?

Покажи весь код.

Весь? он большой. есть страница, где выбирается фотка. при добавлении фотки - появляются кнопка загрузки. при нажатии на кнопку...
var $ = jQuery.noConflict();

$(document).ready(function() {
// В dataTransfer помещаются изображения которые перетащили в область div
jQuery.event.props.push('dataTransfer');

// Максимальное количество загружаемых изображений за одни раз
var maxFiles = 30;

// Оповещение по умолчанию
var errMessage = 0;

// Кнопка выбора файлов
var defaultUploadBtn = $('#uploadbtn');

// Массив для всех изображений
var dataArray = [];

//- проверяем принадлежность к определённой странице и проверяем на пустые поля
if(window.location.toString().indexOf('news.php')>0) {
$('#drop-files').css({'display' : 'none'});
$(".content").on('change', function() {
if (!$("#namenew").val() == "") {
if (!$("#datenew").val() == "") {
if (!$("#textnew").val() == "") {
$('#drop-files').css({'display' : 'block'});
}
}
}
}
);
}

// Область информер о загруженных изображениях - скрыта
$('#uploaded-files').hide();

// Метод при падении файла в зону загрузки
$('#drop-files').on('drop', function(e) {
// Передаем в files все полученные изображения
var files = e.dataTransfer.files;
// Проверяем на максимальное количество файлов
if (files.length <= maxFiles) {
// Передаем массив с файлами в функцию загрузки на предпросмотр
loadInView(files);
} else {
alert('Вы не можете загружать больше '+maxFiles+' изображений!');
files.length = 0; return;
}
}
);

// При нажатии на кнопку выбора файлов
defaultUploadBtn.on('change', function() {
// Заполняем массив выбранными изображениями
var files = $(this)[0].files;
// Проверяем на максимальное количество файлов
if (files.length <= maxFiles) {
// Передаем массив с файлами в функцию загрузки на предпросмотр
loadInView(files);
// Очищаем инпут файл путем сброса формы
$('#frm').each(function(){
this.reset();
});
} else {
alert('Вы не можете загружать больше '+maxFiles+' изображений!');
files.length = 0;
}
}
);

// Функция загрузки изображений на предросмотр
function loadInView(files) {
// Показываем обасть предпросмотра
$('#uploaded-holder').show();

// Для каждого файла
$.each(files, function(index, file) {

// Несколько оповещений при попытке загрузить не изображение
if (!files[index].type.match('image.*')) {

if(errMessage == 0) {
$('#drop-files p').html('Эй! только изображения!');
++
errMessage
}
else if(errMessage == 1) {
$('#drop-files p').html('Стоп! Загружаются только изображения!');
++
errMessage
}
else if(errMessage == 2) {
$('#drop-files p').html("Не умеешь читать? Только изображения!");
++
errMessage
}
else if(errMessage == 3) {
$('#drop-files p').html("Хорошо! Продолжай в том же духе");
errMessage = 0;
}
return false;
}



// Проверяем количество загружаемых элементов
if((dataArray.length+files.length) <= maxFiles) {
// показываем область с кнопками
$('#upload-button').css({'display' : 'block'});

}
else { alert('Вы не можете загружать больше '+maxFiles+' изображений!'); return; }

// Создаем новый экземпляра FileReader
var fileReader = new FileReader();
// Инициируем функцию FileReader
fileReader.onload = (function(file) {

return function(e) {
// Помещаем URI изображения в массив
dataArray.push({name : file.name, value : this.result});
addImage((dataArray.length-1));
};

})(files[index]);
// Производим чтение картинки по URI
fileReader.readAsDataURL(file);
});
return false;
}

// Процедура добавления эскизов на страницу
function addImage(ind) {
// Если индекс отрицательный значит выводим весь массив изображений
if (ind < 0 ) {
start = 0; end = dataArray.length;
} else {
// иначе только определенное изображение
start = ind; end = ind+1; }
// Оповещения о загруженных файлах
if(dataArray.length == 0) {
// Если пустой массив скрываем кнопки и всю область
$('#upload-button').hide();
$('#uploaded-holder').hide();
} else if (dataArray.length == 1) {
$('#upload-button span').html("Был выбран 1 файл");
} else {
$('#upload-button span').html(dataArray.length+" файлов были выбраны");
}
// Цикл для каждого элемента массива
for (i = start; i < end; i++) {
// размещаем загруженные изображения
if($('#dropped-files > .image').length <= maxFiles) {
$('#dropped-files').append('<div id="img-'+i+'" class="image" style="background: url('+dataArray[i].value+'); background-size: cover;"> <a href="#" id="drop-'+i+'" class="drop-button">Удалить изображение</a></div>');
}
}

return false;
}

// Функция удаления всех изображений
function restartFiles() {

// Установим бар загрузки в значение по умолчанию
$('#loading-bar .loading-color').css({'width' : '0%'});
$('#loading').css({'display' : 'none'});
$('#loading-content').html(' ');

// Удаляем все изображения на странице и скрываем кнопки
$('#upload-button').hide();
$('#dropped-files > .image').remove();
$('#uploaded-holder').hide();

// Очищаем массив
dataArray.length = 0;

return false;
}

// Удаление только выбранного изображения
$("#dropped-files").on("click","a[id^='drop']", function() {
// получаем название id
var elid = $(this).attr('id');
// создаем массив для разделенных строк
var temp = new Array();
// делим строку id на 2 части
temp = elid.split('-');
// получаем значение после тире тоесть индекс изображения в массиве
dataArray.splice(temp[1],1);
// Удаляем старые эскизы
$('#dropped-files > .image').remove();
// Обновляем эскизи в соответсвии с обновленным массивом
addImage(-1);
});

// Удалить все изображения кнопка
$('#dropped-files #upload-button .delete').click(restartFiles);

//-функция обрезки текста. Принимает строку и кол-во символов
function cutstring(qtxt, col) {
if (qtxt.length > col) {
return qtxt.slice(0, col - 3) + '...';
}
return qtxt;
};
var idnews = 32;
// Загрузка изображений на сервер
$('#upload-button .upload').click(function() {

//-проверяем принадлежность к определённой странице
if(window.location.toString().indexOf('news.php')>0) {
//-получаем данные - обрезаем до нужного размера, в php проблемы с обрезкой (один символ - 2 байта)
var namenew = cutstring($("#namenew").val(), 190);
var datenew = $("#datenew").val();
var groupnew = $("#groupnew").val();
var textnewtext = cutstring($("#textnew").val(), 250);
var textnewcontent = $("#textnew").val();

//-передаем данные скрипту
var idnews = $.post('/restor/uploadnew.php', {namenew, datenew, groupnew, textnewtext, textnewcontent}, function(datanew) {
if(datanew) {
alert ('Новость добавлена');
$("#namenew").val('');
$("#datenew").val('');
$("#groupnew").val('');
$("#textnew").val('');
idnews = datanew;
return idnews;
} else {
alert ('Что-то не так');
}
}
);
}


// Показываем прогресс бар
$("#loading").show();
// переменные для работы прогресс бара
var totalPercent = 100 / dataArray.length;
var x = 0;

$('#loading-content').html('Загружен '+dataArray[0].name);
// Для каждого файла
$.each(dataArray, function(index, file) {


// загружаем страницу и передаем значения, используя HTTP POST запрос
$.post('/restor/uploadimage.php', dataArray[index], function(data) {
var fileName = dataArray[index].name;
++
x;

// Изменение бара загрузки
$('#loading-bar .loading-color').css({'width' : totalPercent*(x)+'%'});
// Если загрузка закончилась
if(totalPercent*(x) == 100) {
// Загрузка завершена
$('#loading-content').html('Загрузка завершена!');

// Вызываем функцию удаления всех изображений после задержки 1 секунда
setTimeout(restartFiles, 1000);
// если еще продолжается загрузка
} else if(totalPercent*(x) < 100) {
// Какой файл загружается
$('#loading-content').html('Загружается '+fileName);
}
//- проверяем принадлежность к определённой странице
if(window.location.toString().indexOf('news.php')>0) {

//-скрываем div'ы
$('#drop-files').css({'display' : 'none'});
$('#file-name-holder').css({'display' : 'none'});
alert (data);

} else {
// Формируем в виде списка все загруженные изображения
// data формируется в upload.php

var dataSplit = data.split(':');
if(dataSplit[1] == 'загружен успешно') {
$('#uploaded-files').append('<li><a href="images/'+dataSplit[0]+'">'+fileName+'</a> загружен успешно</li>');

} else {
$('#uploaded-files').append('<li><a href="images/'+data+'. Имя файла: '+dataArray[index].name+'</li>');
}

}

}
);
});
// Показываем список загруженных файлов
$('#uploaded-files').show();
return false;
});

// Простые стили для области перетаскивания
$('#drop-files').on('dragenter', function() {
$(this).css({'box-shadow' : 'inset 0px 0px 20px rgba(0, 0, 0, 0.1)', 'border' : '4px dashed #bb2b2b'});
return false;
});

$('#drop-files').on('drop', function() {
$(this).css({'box-shadow' : 'none', 'border' : '4px dashed rgba(0,0,0,0.2)'});
return false;
});
});


которая запускает файл php
<?php
session_start();
// Создаем подключение к серверу $_SERVER[DOCUMENT_ROOT].
define (PATH, $_SERVER[DOCUMENT_ROOT]);
require_once(PATH."/res/db.php");
require_once(PATH."/res/func.php");

if (empty($_SESSION['login']) or empty($_SESSION['id'])) {
exit;
}
else {

// Вытаскиваем необходимые данные
$file = $_POST['value'];
$name = $_POST['name'];
$idnew = strtoint($_SESSION['idnew']);
$datenew = $_SESSION['datenew'];

//- Все загруженные файлы помещаются в эту папку
$updir = PATH.'/images/news/';
$path1 = substr($datenew, 0, 4);
$path2 = substr($datenew, 5, 2);
$path3 = substr($datenew, 8, 2);
$uploaddir = $updir.$path1.'/'.$path2.'/'.$path3.'/';


//- проверяет наличие папки, если её нет - создает.
if (!is_dir($uploaddir)) {
mkdir($uploaddir, 0777, true);
}

// Получаем расширение файла
$getMime = explode('.', $name);
$mime = strtolower(end($getMime));

// Выделим данные
$data = explode(',', $file);

// Декодируем данные, закодированные алгоритмом MIME base64
$encodedData = str_replace(' ','+',$data[1]);
$decodedData = base64_decode($encodedData);

// Вы можете использовать данное имя файла, или создать произвольное имя.
// Мы будем создавать произвольное имя!

$rndName = substr_replace(sha1(microtime(true)), '', 12);
$randomName =$rndName.'.'.$mime;
$randomNameSmall = $rndName.'_small.'.$mime;

//- проверяем данные
$uploaddir = mysql_escape_string($uploaddir);
$randomName = mysql_escape_string($randomName);
$randomNameSmall = mysql_escape_string($randomNameSmall);
$decodedData = mysql_escape_string($decodedData);

// Создаем изображение на сервере
if(file_put_contents($uploaddir.$randomName, $decodedData)) {
// Записываем данные изображения в БД
resizeimg($uploaddir.$randomName, $uploaddir.$randomNameSmall, 100, 75);
$query = "INSERT INTO images (date,catalog,filename,id_news, small) VALUES (NOW(),'$uploaddir','$randomName','$idnew', '$randomNameSmall')";
$loadcontent = mysqli_query($dbc, $query);

}
else {
// Показать сообщение об ошибке, если что-то пойдет не так.
echo "Что-то пошло не так. Убедитесь, что файл не поврежден!";
}

/*
$id_foto = mysql_insert_id($dbc);

$in = $uploaddir.$randomName;
$out = $uploaddir.$randomNameSmall;
resizeimg($in, $out, 100, 75);
$query2 = "UPDATE images SET small='$randomNameSmall' WHERE id='$id_foto'";
$loadcontent2 = mysqli_query($dbc, $query2);
*/

}
?>

ну и тогда страница загрузки...
<?php
session_start();

define (PATH, $_SERVER[DOCUMENT_ROOT]);
//Главная страница
$title = "Главная страница";

require_once(PATH."/connect.php"); //подключаются db, func, head, header, menu_left
if (empty($_SESSION['login']) or empty($_SESSION['id'])) {
echo '<center><a href="/restor/index.php">Страница входа</a></center>';
}
else {

//начало тела страницы
echo "<section>";?>


<h1>Добавить новость</h1><br>
<
div class="content">
<
div class="addnew">
<
label>Название новости:</label><br>
<
input type="text" id="namenew" size="80">
</
div>
<
div class="addmnew">
<
label>Дата новости (в формате дд.мм.гггг):</label><br>
<
input type="date" id="datenew" value="<?=date("Y.m.d")?>" >
</
div>
<
div class="addmnew">
<
label>Группа:</label><br>
<
select id="groupnew" size="1">
<
option disabled>Выберите группу</option>
<?php
$querygroup = "SELECT id, name FROM sadgroup";
$pagegroup = mysqli_query($dbc, $querygroup)
or die ('Ошибка при выполнении запроса к базе данных');
while ($resgroup = mysqli_fetch_array($pagegroup)) {
$idgroup = $resgroup['id'];
$namegroup = $resgroup['name'];
if ($idgroup == 1) {
echo '<option selected value="'.$idgroup.'">'.$namegroup.'</option>';
}
else {
echo '<option value="'.$idgroup.'">'.$namegroup.'</option>';
}
}

?>
</select>
</
div>
<
div class="addmnew">
<
label>Содержание новости:</label><br>
<
textarea id="textnew" cols="105" rows="18" placeholder="Введите текст"></textarea>
</
div>
<
br>
<
div id="drop-files" ondragover="return false">
<
p>Перетащите изображение сюда</p>
<
form id="frm">
<
input type="file" id="uploadbtn" multiple />
</
form>
</
div>
<!--
Область предпросмотра -->
<
div id="uploaded-holder">
<
div id="dropped-files">
<!--
Кнопки загрузить и удалить, а также количество файлов -->
<
div id="upload-button">
<
center>
<
a href="#" class="upload">Загрузить</a>
<
a href="#" class="delete">Удалить все фото</a>
<!--
Прогресс бар загрузки -->
<
div id="loading">
<
div id="loading-bar">
<
div class="loading-color"></div>
</
div>
<
div id="loading-content"></div>
</
div>
</
center>
</
div>
</
div>
</
div>
<!--
Список загруженных файлов -->
<
div id="file-name-holder">
<
ul id="uploaded-files">
<
h3>Загруженные файлы</h3>
</
ul>
</
div>

</
div>

<? }
echo "</section>";?>
<script src="/js/javascript.js"></script>
<?
require_once(PATH."/tpl/footer.tpl"); //подвал страницы
?>


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.