Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Автоматическая загрузка изображения по ссылке (https://javascript.ru/forum/misc/54140-avtomaticheskaya-zagruzka-izobrazheniya-po-ssylke.html)

Delfiniys 05.03.2015 02:27

Автоматическая загрузка изображения по ссылке
 
Водникла портребность в автоматическтой загрузке изображдения из поля
<input type="text" name="topic_avataregsource" value="{$_aRequest.topic_avataregsource}" id="topic_avataregsource" class="input-text input-width-full" />


Этот блок обрабатывает скрипт (который просто выводит превью
<script type="text/javascript">



    <!--
    $(document).ready(function () {
        // Username validation logic
       
        // avatar validation
        // we use keyup *and* change because 
        $('#topic_avataregsource').keyup(function () {
            var t = this;
            clearTimeout(this.timer);
            this.timer = setTimeout(function () {
                if (t.value == t.current) {
                    return true;
                }

                var preview = $('#validateTopic_avataregsource').html('<img src="/images/ajax-loader.gif" height="16" width="16" /> загружаем...');
                var i = new Image();

                clearTimeout(t.timeout);

                if (t.value == '') {
                    preview.html('');
                } else {
                    i.src = t.value;
                    i.height = 249;
                    i.width = 249;
                    i.className = 'topic_avataregsource';

                    // set a timeout of x seconds to load the image, otherwise, show the fail message
                    t.timeout = setTimeout(function () {
                        preview.html('Произошла ошибка при загрузке фотографии.');
                        i = null;
                    }, 3000);

                    // if the dummy image holder loads, we'll show the image in the validation space,
                    // but importantly, we clear the timer set above
                    i.onload = function () {
                        clearTimeout(t.timeout);
                        preview.empty().append(i);
                        i = null;
                    };
                }
                
                t.current = t.value;
            }, 250);
        }).change(function () {
            $(this).keyup(); // call the keyup function
        });
    });
    //-->
    </script>


Но встала проблема что не могу придумать как бы допустим картинку
http://внешнийсайт/images/92/11/3111_1306431460805.jpg

загружать АВОМАТИЧЕКСИ после вставки УРЛ , в папку допустим
/upload/avatars/внешнийсайт/images/92/11/3111_1306431460805.jpg

Почему так, потому, что в БД пишется поле http://внешнийсайт/images/92/11/3111_1306431460805.jpg - и потом просто автозаменой можно сделать подстнвоку на http://мойсайт//upload/avatar...6431460805.jpg

По нажатию кнопки я уже где находил как сделать, но именно бесшумно и с проверкой на jpg или png был бы очень не плохо..
очень нуждаюсь в Вашей помощи!

danik.js 05.03.2015 04:23

Отправляешь url на сервер, сервер делает все остальное :)
А ты как думал?

Delfiniys 05.03.2015 13:47

Да смысл я как бы понял :) но вот КАК реализовать загадка :(

danik.js 05.03.2015 15:14

Цитата:

Сообщение от Delfiniys
КАК реализовать загадка

Зависит от используемого языка на сервере. Если php - реализуй на php. Если js - реализуй на js. Если C# или другой .NET язык - реализуй на нем. Может у тебя java? Или python? А может ruby? А может ты харкорщик и у тебя сайт на C++?

danik.js 05.03.2015 15:16

На php:
file_put_contents('image_on_your_server.png', file_get_contents('http://site.ru/image_on_remote_server.png'));

Delfiniys 05.03.2015 19:35

Все на php с JavaScript. Я понимаю процедуру загрузки, но не могу понять как это делать "тихо" Без перезагрузки страницы:(

laimas 05.03.2015 21:36

Без перезагрузки - асинхронным запросом.

Delfiniys 17.04.2015 14:14

А чуточку подробней можно? :write:

laimas 17.04.2015 14:26

А что именно подробней? Если нужно тело изображения, это одно, а если "превью", то достаточно скрипту указать путь к изображению, а далее как в вашем скрипте загрузка. Перезагрузки страницы при этом не будет.
А вот если пути к изображениям сервер отдает по параметру (то есть изначально они не известны), то асинхронный запрос, и уже полученное используем.


Часовой пояс GMT +3, время: 07:48.