powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ресайз картинок с помощью канвас (Jquery)
18 сообщений из 18, страница 1 из 1
Ресайз картинок с помощью канвас (Jquery)
    #39275014
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,

Есть скрипт который ресайзит картинку, и помещает данные картинки в поле с id=hiddenInput1


автор<form enctype="multipart/form-data" method="post" action="upload.php">
<div class="row">
<label for="fileToUpload">Select Files to Upload</label><br />
<textarea id="hiddenInput1"></textarea>
<input file="text" id="hiddenInput1" value="">
input type="file" name="filesToUpload[]" id="filesToUpload" multiple="multiple" />
</div>
<div class="row">
<input type="submit" value="Upload" />
</div>
</form>


<script type="text/javascript" src=" http://code.jquery.com/jquery-1.7.1.min.js"></script>


<script>
if (window.File && window.FileReader && window.FileList && window.Blob) {
document.getElementById('filesToUpload').onchange = function(){
var files = document.getElementById('filesToUpload').files;
for(var i = 0; i < files.length; i++) {
resizeAndUpload(files[i]);
}
};
} else {
alert('The File APIs are not fully supported in this browser.');
}
</script>


<script>
function resizeAndUpload(file) {
var reader = new FileReader();
reader.onloadend = function() {

var tempImg = new Image();
tempImg.src = reader.result;
tempImg.onload = function() {

var MAX_WIDTH = 640;
var MAX_HEIGHT = 480;
var tempW = tempImg.width;
var tempH = tempImg.height;
if (tempW > tempH) {
if (tempW > MAX_WIDTH) {
tempH *= MAX_WIDTH / tempW;
tempW = MAX_WIDTH;
}
} else {
if (tempH > MAX_HEIGHT) {
tempW *= MAX_HEIGHT / tempH;
tempH = MAX_HEIGHT;
}
}

var canvas = document.createElement('canvas');
canvas.width = tempW;
canvas.height = tempH;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0, tempW, tempH);
var dataURL = canvas.toDataURL("image/jpeg");



$("#hiddenInput1").val(dataURL); // вот именно тут вставляем значение в скрытый инпут

}

}
reader.readAsDataURL(file);
}
</script>

Что нужно ?

Нужно сделать три кнопки browse и 3 таких инпута, что бы к примеру в каждом инпуте был свой Base64 картинки
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275018
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще если можно, обьясните мне пожалуйсто как работает данный метод загрузки файлов, который я наблюдал на некоторых сайтах.

К примеру пользователь при выборе картинки может ее загрузить на сервер до ОТПРАВКИ ФОРМЫ.

Т.е как это понимать ?, а если юзер загрузит картинки, и закроет формы, т.е уйдет с сайта, и все.

То картинки кто удалит ? или как ? т.е получается картинки будут на сервере, как бы лежать просто так ? не привязанные допустим к сообщению ? или я что то не так понимаю ? обьясните данный метод как работает.
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275028
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще вопрос в плане безопасности такой метод безопасен ? т.е передавать base64 в PHP ? и какие методы защиты должны быть ? если они нужны ? как на стороне формы так и на стороне PHP обработки самого base64 ?
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275044
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotТо картинки кто удалит ? или как ? т.е получается картинки будут на сервере, как бы лежать просто так ? не привязанные допустим к сообщению ? или я что то не так понимаю ? обьясните данный метод как работает.

например, фоновый процесс, убирающий мусор
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275047
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotИ еще вопрос в плане безопасности такой метод безопасен ? т.е передавать base64 в PHP ? и какие методы защиты должны быть ? если они нужны ? как на стороне формы так и на стороне PHP обработки самого base64 ?

от чего защищаться?
только от невалидной картинки.

В нормальном случае(пользователь вместо картинки подсунул по ошибке текстовый файл) - сломается ресайзер на клиенте - предусмотреть обработку ошибок имеет смысл

Злоумышленник может отправить на сервер любой мусор - на стороне сервера нужно проверить,
что данные являются изображением в нужном формате, с допустимыми шириной, высотой, глубиной цвета
и общим размером

сам по себе base64 нужен чтобы двоичные данные передавались как текст
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275078
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но как это сделать можно пример ?
Как проверить что это именно картинку мы получаем ? а не какойто мусор ?
Это важно ибо мало ли что может быть..
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275080
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

На счет фотнового процесса вы имеете ввиду, какой нибудь скрипт который работает по крону ?
И сверят прявязанна ли картинка к сообщению если нет удаляет ее ? но как по мне дергать базу данных к примеру если она большая ... я думал как то по проще с такой логикой
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275098
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275099
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotно как по мне дергать базу данных
для того и база чтоб её дёргать.
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275101
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все равно никто внятного ответа не дал, каким образоп делать проверку, такого поля

<input file=hidden value="тут идет код base64 картинки">

Как проверить, должен быть способо простой
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275102
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotКак проверить что это именно картинку мы получаем ? а не какойто мусор ?
Это важно ибо мало ли что может быть..

самый простой способ - вызвать getimagesize, проверить mime тип, размеры и глубину цвета на допустимость.
затем скопировать один к одному imagecopy (все метаданные вычистятся заодно)
и сохранить результат
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275104
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbot
Код: html
1.
<input file=hidden value="тут идет код base64 картинки">


сначала ошибки исправьте.
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275105
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
file type=
просто в спешки писал

Я так понял тут все гуру собрались только отдакиваться :) и попровлять, или тулить какие то примеры вообще редакторов с гитхаба.

Вы что не видете простейший код ? :)

Который получает картинку, преобразовует в base64 и отправляет этот Base64 php скрипту на обработку и сохранение.

Вообщем ясно все :) отбой, а то еще холивар тут будет на 10 страниц, забуду где то запятую поставить, пристрелят, напомнят 10 раз, потом поправят и дадут ссылку автофил в гугле как искать ))))))) вот так помощь...
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275111
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор<textarea id="hiddenInput1"></textarea>
<input file="text" id="hiddenInput1" value="">
ещё одну ошибку найдите
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275112
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotзабуду где то запятую поставить
обратите внимание, что на грамматические ошибки в Ваших постах никто не указывал
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275115
sqlbot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

Да да я понял, но все же, суть сейчас не в этом, ибо ту проблему я решил.
С генерацией скрытый инпутов и предустановленными значениями base64 для отправки.
Ясно :) потом говорите что бы форум развивался и т д и т п, вот так обратился один раз, и все :) больше никто не придет не напишет.. т.е если вы принимаете участие в дискусии либо вы говорите по делу, и пытаетесь помочь, либо нет.
А сидеть писать, там не то там не это :) когда речь идет уже не о выше-указанной проблеме.

Ну да ладно :)
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275118
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlbotА сидеть писать, там не то там не это :)
зато научитесь :)

готовый код зачастую проще кинуть вообще-то
...
Рейтинг: 0 / 0
Ресайз картинок с помощью канвас (Jquery)
    #39275127
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор потом говорите что бы форум развивался и т д и т п, вот так обратился один раз, и все :) больше никто не придет не напишет.. т.е если вы принимаете участие в дискусии либо вы говорите по делу, и пытаетесь помочь, либо нет.
А сидеть писать, там не то там не это :) когда речь идет уже не о выше-указанной проблеме.

Ну да ладно :)
за моё время здесь столькот обидчивых прошло...
а форум живёт
по этому поводу есть давно сказанное:
дай голодному рыбу - он будет сыт один день, а если дать ему леща - он научится добывать рыбу сам :)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Ресайз картинок с помощью канвас (Jquery)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]