Обработка ошибок при загрузке картинок для статей; проверка загружаемых файлов-картинок
This commit is contained in:
parent
ce4c3904e2
commit
7454aa005f
|
|
@ -52,7 +52,13 @@ class ImagesController extends Controller
|
||||||
$uploaddir = App::getBasedir() . '../public/photos/articles/';
|
$uploaddir = App::getBasedir() . '../public/photos/articles/';
|
||||||
$fileName = (string)$_FILES['photo']['name'];
|
$fileName = (string)$_FILES['photo']['name'];
|
||||||
$temp = pathinfo($fileName);
|
$temp = pathinfo($fileName);
|
||||||
$extension = strtolower($temp['extension']) ? strtolower($temp['extension']) : 'jpg';
|
$extension = strtolower($temp['extension']);
|
||||||
|
|
||||||
|
if (array_search($extension, array('jpg','jpeg','png')) === FALSE || getimagesize($_FILES['photo']['tmp_name']) === false) {
|
||||||
|
print 'error';
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
|
||||||
$photo = $userId . strtolower('_' . substr(md5($fileName . time()), 0, 5) . '.' . $extension);
|
$photo = $userId . strtolower('_' . substr(md5($fileName . time()), 0, 5) . '.' . $extension);
|
||||||
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploaddir . $photo)) {
|
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploaddir . $photo)) {
|
||||||
ArticlePhotos::model()->add(array(
|
ArticlePhotos::model()->add(array(
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
<script>
|
<script>
|
||||||
function updatePhotobank() {
|
function updatePhotobank() {
|
||||||
|
if (document.getElementById("hiddenframe").contentWindow.document.body.innerText == 'error') {
|
||||||
|
alert('Ошибка при загрузке.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$('#photo').val('');
|
$('#photo').val('');
|
||||||
$('#caption').val('');
|
$('#caption').val('');
|
||||||
$.getJSON("/json/getmyartphotos", function (data) {
|
$.getJSON("/json/getmyartphotos", function (data) {
|
||||||
|
|
@ -8,20 +13,20 @@
|
||||||
$("<img/> ", {
|
$("<img/> ", {
|
||||||
"class": "my-new-list",
|
"class": "my-new-list",
|
||||||
src: '/photos/articles/small/' + val.name,
|
src: '/photos/articles/small/' + val.name,
|
||||||
title: 'img #'+val.id+' :: '+val.caption,
|
title: 'img #' + val.id + ' :: ' + val.caption,
|
||||||
photoId: val.id
|
photoId: val.id
|
||||||
}).appendTo('#photobank');
|
}).appendTo('#photobank');
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#photobank img").on("click", function () {
|
$("#photobank img").on("click", function () {
|
||||||
articleText = document.getElementById('articleText');
|
articleText = document.getElementById('articleText');
|
||||||
imgText = '\n[img|#'+$(this).attr('photoid')+']\n';
|
imgText = '\n[img|#' + $(this).attr('photoid') + ']\n';
|
||||||
insertAtCursor(articleText, imgText);
|
insertAtCursor(articleText, imgText);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function insertAtCursor(myField, myValue) {
|
function insertAtCursor(myField, myValue) {
|
||||||
//IE support
|
//IE support
|
||||||
if (document.selection) {
|
if (document.selection) {
|
||||||
myField.focus();
|
myField.focus();
|
||||||
|
|
@ -38,7 +43,7 @@ function insertAtCursor(myField, myValue) {
|
||||||
} else {
|
} else {
|
||||||
myField.value += myValue;
|
myField.value += myValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div id="pageSmoothBackground" style="background-image: url(<?= $randomPoint->getImg('middle') ?>);"></div>
|
<div id="pageSmoothBackground" style="background-image: url(<?= $randomPoint->getImg('middle') ?>);"></div>
|
||||||
|
|
||||||
|
|
@ -76,10 +81,10 @@ function insertAtCursor(myField, myValue) {
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12" style="margin: 20px 0; border-top: solid 1px #bbb; border-bottom: solid 1px #bbb;">
|
<div class="col-md-12" style="margin: 20px 0; border-top: solid 1px #bbb; border-bottom: solid 1px #bbb;">
|
||||||
<form enctype="multipart/form-data" id="articlePhotoloader" action="/images/loadPhoto" method="POST" name="loadavatar" target="hiddenframe" class="form-inline">
|
<form enctype="multipart/form-data" id="articlePhotoloader" action="/images/loadPhoto" method="POST" name="loadavatar" target="hiddenframe" class="form-inline">
|
||||||
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
|
<input type="hidden" name="MAX_FILE_SIZE" value="5242880" />
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="photo">Загрузить новое изображение</label>
|
<label for="photo">Загрузить новое изображение (MAX 5MB) (jpg, png)</label>
|
||||||
<input id="photo" name="photo" type="file" class="form-control" />
|
<input id="photo" name="photo" type="file" class="form-control" accept=".jpg,.png,.jpeg" />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input id="caption" name="caption" type="text" class="form-control" placeholder="Описание (по желанию)" />
|
<input id="caption" name="caption" type="text" class="form-control" placeholder="Описание (по желанию)" />
|
||||||
|
|
@ -90,6 +95,6 @@ function insertAtCursor(myField, myValue) {
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12" id="photobank"></div>
|
<div class="col-md-12" id="photobank"></div>
|
||||||
<iframe id=hiddenframe name="hiddenframe" style="width:0px; height:0px; border:0px" onload="updatePhotobank()"></iframe>
|
<iframe id="hiddenframe" name="hiddenframe" style="width:0px; height:0px; border:0px" onload="updatePhotobank()"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue