ФорумПрограммированиеJavaScript → Вывод изображения загружаемого пользователем без загрузки

Вывод изображения загружаемого пользователем без загрузки

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 22 апреля 2010 г. 8:55

    Нужно пользователям позволить размещать статьи и прикреплять к ним картинки.

    Идея у меня такая по прикреплению файлов. Есть такой хтмл

    <div id="photosUpload">
    <input type="file" name="photos[]" class="photos" /></div>
    <div id="photos"></div>

    и пока такой JS

    $(".photos").livequery("change", function() {
    $('<input type="file" name="photos[]" class="photos"/>').prependTo("#photosUpload");
    $(this).hide();
    });


    То есть, выбираем файл, input становится невидимым, на место него приходит еще 1.
    При этом внизу в слое

    <div id="photos"></div>

    должна появиться табличка такая

    <table>
    <tr>
    <td>
    <img src="сюда должны вставится ссылка на картинку на Вашем компьютере">
    </td>
    <td>
    <textarea>
    </textarea>
    </td>
    </tr>
    </table>

    Вот как ее получить?
    я попробовал так

    $(this).val();

    но он выдает только название файла а не путь к нему.

    Цель всей заморочки такая что бы пользователь мог загрузить файлы только в тот момент когда создает статью, при этом он может добавить описание к загружаемым картинкам и желательно что бы он видел визуально картинку к которой оставляет описание.
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 22 апреля 2010 г. 9:11, спустя 16 минут 41 секунду

    http://pyha.ru/forum/topic/4151.0
    Work, buy, consume, die
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 22 апреля 2010 г. 10:16, спустя 1 час 4 минуты 34 секунды

    Чет я многое на пыхе пропускать стал =)
    И что, так никто ничего не придумал?
    Эх, плохо. =(
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 апреля 2010 г. 12:52, спустя 2 часа 36 минут 11 секунд

    1) Ну в новых браузерах есть File.API. Можно считать файл, создать див и этому диву сделать background-image: base64…..(считанный файл в base64)

    2) сделать через флеш

    3) загружать картинку на серв сразу после ее выбора (.change), делать миниатюру, возвращать ссылку на эту миниатюру джсоном и ее вставлять
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 22 апреля 2010 г. 13:48, спустя 55 минут 57 секунд

    Я решил пойти простым путем.
    Я просто делаю так что пользователь сначала создает статью водя название и к ней прикрепляет файлы.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 22 апреля 2010 г. 14:23, спустя 35 минут 18 секунд

    тю, то есть я зря придумывал варианты решений? о_О
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 23 апреля 2010 г. 0:32, спустя 10 часов 8 минут 24 секунды

    Ну я тоже рассматривал вариант №3. Но он не подходит все по той же причине. Ну да, экономия будет, но:
    a) все равно если скриптом файлы передавать то место на хостинге закончится, а чистить потом невозможно(ну или придумывать опять рийдется что то.)
    b) придется каждый файл по 2 раза загружать

    Первый вариант не подходит в силе того что работать должно во всех браузерах.

    А второй не подходит по причине незнания мной флеша

    Так что спасибо за то что попытался но варианты не подходят.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 23 апреля 2010 г. 3:22, спустя 2 часа 50 минут 10 секунд

    Я понимаю, что не надо,но может кто поиском найдет и понадобится.
    a) все равно если скриптом файлы передавать то место на хостинге закончится, а чистить потом невозможно(ну или придумывать опять рийдется что то.)
    b) придется каждый файл по 2 раза загружать

    Делаем так. Создаем две папки.
    /img
    /img/tmp
    В папку /img/tmp переносим файл по change давая им названия типа уникальная_строка_" . time() . ".гиф".
    Далее если человек загрузку подтверждает, то просто переносим картинку в папку /img, переименовывая, если нужно.
    По крону чистим файлы старше пару дней (по дате в названии) из tmp.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 23 апреля 2010 г. 5:12, спустя 1 час 50 минут 11 секунд

    SpartakuS, к черту дату создания в имени файла, есть же filemtime
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 23 апреля 2010 г. 5:42, спустя 30 минут

    ну алексМ помоему предлагал кроном. Мне не подходит этот вариант.
    Почему?
    потому что если забьют мне все место то в течении трех дней его не будет, и собственно могут некоторые функции сайта не работать из за этого.
    Если уж и тратить место на файлы, то только на нужные хоть как то =)
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 23 апреля 2010 г. 14:17, спустя 8 часов 34 минуты 47 секунд

    Абырвалг, не знал. Хотя догадывался.Даже написать хотел. Сеньк.
  • Andreus

    Сообщения: 16 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 12:27, спустя 847 дней 22 часа 10 минут

    ВОТ ЧТО ЗДЕЛАТЬ ДЛЯ ТЕБЯ ЩАС ЧТОБ ТЫ СКАЗАЛА ТЫ МНЕ НИК

Пожалуйста, авторизуйтесь, чтобы написать комментарий!