Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2015, 12:38
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

Имитация загрузки файла
У меня есть плагин кропа изображения. При выборе изображения через кнопку "обзор" плагин подгружает выбранное фото для кропа вот так http://prntscr.com/8y3f7z , а я хочу чтобы по нажатию кнопки сброс, в плагин автоматом подгружалось фото с сервака. Как такое сделать? я так понимаю мне надо симитировать загрузку в поле file через js?
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2015, 12:52
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

у меня стоит вот этот плагин https://github.com/bupy7/yii2-widget-cropbox

Последний раз редактировалось pogranpv, 02.11.2015 в 13:58.
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2015, 15:25
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

я нашёл строки кода

selectFromFile = function() {
var fileReader = new FileReader();
fileReader.readAsDataURL(this.files[0]);
$(fileReader).one(EVENT_LOAD, loadImage);
},

как я понимаю мне надо как-то вместо this.files[0] поставить объект своего файла
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2015, 15:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от pogranpv
я хочу чтобы по нажатию кнопки сброс, в плагин автоматом подгружалось фото с сервака.
Зачем? Имитировать загрузку в поле file нельзя, а передать в плагин удаленный сетевой файл можно, и это делать нужно в jq-плагине, по ссылке же, это серверный обработчик.
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2015, 15:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от pogranpv
я нашёл строки кода
Это уже клиентский код. Теперь ищите обработчик события кнопки Сбросить, и он должен обращаться к функции selectFromFile передавая в нее загруженное по сети изображение (var im = new Image(); im.src = "сетевой путь" и т.д.) в общем немного дорабатывать код надо.
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2015, 15:51
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

а не подскажете как получить объект файла по ссылке?
Ответить с цитированием
  #7 (permalink)  
Старый 02.11.2015, 16:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Код не сложный:

var im = new Image();
im.onload = function() {
    //здесь в selectFromFile передать this - это и будет тело изображения,
    //которое уже и должно быть передано readAsDataURL(this);
    //а можно проще, если в плагине используется canvas, то передать сразу в canvas  
}
im.src = "путь сетевого файла"


Но серверная сторона плагина обрабатывает файл загруженный методом POST, то есть считать на клиенте сетевой файл, это еще не решение вопроса, его нужно либо опять передать на сервер, что в общем то лишено смысла, либо сообщить серверу только координаты обрезки и то, что нужно работать с локальным (серверным) файлом.
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2015, 16:39
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

Сообщение от laimas Посмотреть сообщение
Это уже клиентский код. Теперь ищите обработчик события кнопки Сбросить, и он должен обращаться к функции selectFromFile передавая в нее загруженное по сети изображение (var im = new Image(); im.src = "сетевой путь" и т.д.) в общем немного дорабатывать код надо.
у меня не получается передать загружаемое по сети изображение(

делаю вот так
var fileReader = new FileReader();
var im = new Image();
im.src = 'http://look.loc/statics/web/blogs/preview/9602/9602.jpg';
fileReader.readAsDataURL(im);
$(fileReader).one(EVENT_LOAD, loadImage);

и ничего
Ответить с цитированием
  #9 (permalink)  
Старый 02.11.2015, 16:40
Аспирант
Отправить личное сообщение для pogranpv Посмотреть профиль Найти все сообщения от pogranpv
 
Регистрация: 07.08.2014
Сообщений: 37

а не могли бы вы глянуть код, я готов заплатить( просто не получается самому сделать
Ответить с цитированием
  #10 (permalink)  
Старый 02.11.2015, 16:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от pogranpv
делаю вот так
var fileReader = new FileReader();
var im = new Image();
im.src = 'http://look.loc/statics/web/blogs/preview/9602/9602.jpg';
fileReader.readAsDataURL(im);
$(fileReader).one(EVENT_LOAD, loadImage);

Так нельзя, смотрите выше. Но и просто вставить в код эти строки тоже нельзя, это ведь надо делать по событию кнопки Сбросить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прочитать параметры файла JPEG ещё в браузере, до загрузки на сервер? Webnode Общие вопросы Javascript 6 13.01.2014 19:44
Прогресс загрузки большого изображения или файла - как сделать Почемучкин Events/DOM/Window 7 19.10.2012 21:03
Загрузка файла AJAX'ом - почему-то переводит на страницу загрузки файла .andreev AJAX и COMET 13 21.10.2009 22:25
Поле загрузки файла. как опусташить? clgs Элементы интерфейса 1 26.06.2009 14:46
Поле загрузки файла kotofeich Элементы интерфейса 3 30.07.2008 11:24