Автор Тема: Подаване на файл  (Прочетена 2594 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

lqlqlq

  • Full Member
  • ***
  • Благодарности
  • -Казани: 30
  • -Получени: 1
  • Публикации: 234
Подаване на файл
« -: 20 Октомври 2013, 22:04:52 »
Имам следния скрипт:
var clientId = "";
var imgUrl = "http://i.imgur.com/l5OqYoZ.jpg";

$.ajax({
    url: "https://api.imgur.com/3/upload",
    type: "POST",
    datatype: "json",
    data: {image: imgUrl},
    success: showMe,
    error: showMe,
    beforeSend: function (xhr) {
        xhr.setRequestHeader("Authorization", "Client-ID " + clientId);
    }
});

function showMe(data) {
    $("body").append(JSON.stringify(data));
    if(data.success == true) {
        $("body").append("<img src='"+data.data.link+"'/>");
    }
}

Как вместо линк:
var imgUrl = "http://i.imgur.com/l5OqYoZ.jpg";
мога да подам файл в тази дефиниция ?
Примерно имам 1 инпут поле:
    Image <input type="file" name="upload" /> и от него се взима файла с :
$filename = $_FILES['upload']['tmp_name'];?
Ако не става така, някакъв друг вариант ?

MrCroZer

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 11
  • -Получени: 17
  • Публикации: 411
Re: Подаване на файл
« Отговор #1 -: 20 Октомври 2013, 22:11:18 »
за да се вземе файла  с $_FILE тр да се събмитне формата, дефакто не ти тр ajax в този случай. Аз ползвам uploadify  в доста случаи, добър е . Има и мн други варианти за динамичен upload както и не само с javascript.

lqlqlq

  • Full Member
  • ***
  • Благодарности
  • -Казани: 30
  • -Получени: 1
  • Публикации: 234
Re: Подаване на файл
« Отговор #2 -: 20 Октомври 2013, 22:20:04 »
Да, но това което ползвам по-горе прави връзка със сайт, а именно imgur и бих искал ако има вариант да се взима някак си файла (ако въобще е възможно)
Тоест по-горния код, ъплоудва автоматично изображение в друг сайт чрез тяхната приставка.

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Подаване на файл
« Отговор #3 -: 21 Октомври 2013, 00:36:34 »
Няма нищо сложно. Качваш снимката на твоя сървър с най-обикновена форма, обработваш я и я записваш под някакво име в променлива, след това ще използваш тази променлива за да модифицираш твоя скрипт. Може директно да пишеш в JS-а (var imgUrl = <?= '"' . $newlyUploadedFile. '";' ?>), другия вариант е да го изнесеш във външен файл и да връщаш качения файл с JSON. След това щом не искаш да записваш тези снимки на твоя сървър ще трябва да ги триеш.

Edit: това втория вариант май няма да стане толкова лесно...
« Последна редакция: 21 Октомври 2013, 00:42:36 от Avalanche »
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

lqlqlq

  • Full Member
  • ***
  • Благодарности
  • -Казани: 30
  • -Получени: 1
  • Публикации: 234
Re: Подаване на файл
« Отговор #4 -: 21 Октомври 2013, 06:41:32 »
Стана с първия вариант :)
Благодаря!

Сега имам още един въпрос, в скрипта се вижда това:

function showMe(data) {
    $("body").append(JSON.stringify(data));
    if(data.success == true) {
        $("body").append("<img src="+data.data.link+"/>");
    }
}

Искам, ако е успешно всичко да изпълнява и една sql заявка, как може да стане ?

MrCroZer

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 11
  • -Получени: 17
  • Публикации: 411
Re: Подаване на файл
« Отговор #5 -: 21 Октомври 2013, 09:37:31 »
Просто при if(data.success == true) { пускаш една ajax заявка към query-то ти.

lqlqlq

  • Full Member
  • ***
  • Благодарности
  • -Казани: 30
  • -Получени: 1
  • Публикации: 234
Re: Подаване на файл
« Отговор #6 -: 21 Октомври 2013, 14:48:39 »
Оправих се, но как да взимам информация от някои променливи, като $name, Линка към картинката и т.н. ?

ПП: ето как се оправих:
$.ajax({
    type: "POST",
    url: "sql.php"
});
« Последна редакция: 21 Октомври 2013, 14:58:22 от lqlqlq »