Как стать автором
Обновить

Комментарии 14

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
от слова «вина»
куда ему ещё «вина», %username% и так пьян
Правда путь указать по моему проще, чем перетащить файл в браузер :)
Имхо, лучше всего когда можно и так и так)
Когда написал как раз подумал (как это обычно бывает :) ) для переноса пачки файлов удобнее такой способ конечно
Кстати, для кроссдоменных и кроссбраузерных AJAX запросов есть хорошее и легкое решение:
http://code.google.com/p/fullajax/downloads/detail?name=srax.xss.js

Пример использования:

SRAX.XSS.post('http://site.ru/api.php', 'param1=test1&param2=test2', function(response){
   alert(response)
 })

Используем в своём проекте, в котором ярая доля посетителей с оперы. Думаю, возможно модернизировать код и для отправки файлов. Но тут уже не несколько строчек, конечно получается…
Похоже на JSONP, но при помощи iframe.
В опере кстати тоже работает ;)
Правда только перетаскивание, от нажатия на кнопку никакого эффекта.
отличный сервис. лаконично и легко.
LICENSE:
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO. -->
Чуть-чуть дополню данный пост примером на jQuery (Ань, спасибо за пост):

var uploadImage = function(file){
    var fd = new FormData(); fd.append('image', file); // прикрепляем файло
    $.ajax({ 
        url: 'https://api.imgur.com/3/image.json',
        type: 'POST', dataType: 'json', data: fd,
        headers: {'Authorization': 'Client-ID YOUR_KEY_GOES_HERE'},
        cache: false, contentType: false, processData: false
    }).done(function(response) {
        if((response.status === 200) && (response.success === true)){
            var fullsizeLink = response.data.link,
                            // https://api.imgur.com/models/image
                            // (l = 640x640, m = 320x320, t = 160x160)
                thumbLink = fullsizeLink.substr(0, fullsizeLink.lastIndexOf(".")) + 'm' +
                            fullsizeLink.substr(fullsizeLink.lastIndexOf("."),fullsizeLink.length);
            // зачем эта проверка? хороший вопрос.. для очистки совести больше
            $.ajax({url:thumbLink,type:'HEAD'}).done(function(r){
                console.log('thumb '+thumbLink+' exists');
            }).fail(function(r) {
                console.log('thumb '+thumbLink+' NOT exists, use fullsize '+fullsizeLink);
            });
        } else {
            showAlert('Host error (status code '+response.status+')');
        }
    }).fail(function(response) {
        showAlert('Error while image upload');
    });
};
Вам спасибо!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории