Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2014, 09:17   #1
Mick_20
объявления
Пользователь
 
Регистрация: 21.08.2012
Сообщений: 47
По умолчанию Загрузка фото+описание

Здравствуйте!
Помогите пожалуйста написать скрипт.
Задача - загрузить изображение с описанием и вывести без перезагрузки страницы.

- Имеется html форма:
PHP код:
<form action '' method 'post' enctype='multipart/form-data'>
<
input type='text' name='описание картинки' value=''>
<
input type 'file' name 'upfile' />
<
input type 'submit' name 'send' value 'загрузить картинку' /></form
Копал в сторону append(), но так и не придумал как реализовать.
Mick_20 вне форума Ответить с цитированием
Старый 24.03.2014, 09:40   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Добавь скрытый айфрейм, форме укажи тарджет на нее, при сабмите поставь ожидание ответа формы, дальше парси содержимое, либо вставляй прямиком. Наиболее надежный и кросс-браузерный метод, большинство плагинов jq асинхронной загрузки юзают его.
Еще есть решение ИЕ9+, через fileAPI, если интересно, гугли, есть документация на инглише у мозиллы.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.03.2014, 10:33   #3
Mick_20
объявления
Пользователь
 
Регистрация: 21.08.2012
Сообщений: 47
По умолчанию

А через ajax никак?

Я вот что набросал и мучаю сижу:

Форма ввода и div в котором должно ввестись:
PHP код:
<form id="doc_form" method="post" enctype="multipart/form-data" onSubmit="">
<
input class="file_form" type="file" name="upload_file" />
</
form>
<
div id="result"></div>
<
div onclick="SendFile();">Отправить</div
Скрипт:
PHP код:
function SendFile() {

    
//отправка файла на сервер

    
$$f({
        
url:'http://site.ru/ajax.php',//адрес на серверный скрипт который будет принимать файл

        
onsend:function () {//действие по окончании загрузки файла
        
            
$$('result',$$('result').innerHTML+'');//в элемент с id="result" выводим результат
        
}
    });

PHP-обработчик:
PHP код:
if($_FILES['upload_file']['size']>0) {

    
/***загружаем файл**/
    
if ( is_uploaded_file $_FILES['upload_file']['name'] ) ) 
        {     
            
            
            
$doc_name $_FILES['upload_file']['name'];
            if (
copy$_FILES['upload_file']['name'], "docs/{$doc_name}"))
            {
                
                echo 
"Файл загружен! <br/>";
                
            } 
            else 
            {
                
                echo 
"Файл не удалось загрузить на сервер! <br/>";
                
            }
        } 
        else 
        {
            
            echo 
"Файл во временную директорию загрузить не удалось";
        }
    
/***загружаем файл**/
   

}
else
{
    echo 
"Файл пустой!";

Почему файл не загружается?
Mick_20 вне форума Ответить с цитированием
Старый 24.03.2014, 11:43   #4
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Смотрите DEMO.
ATL вне форума Ответить с цитированием
Старый 24.03.2014, 14:28   #5
Mick_20
объявления
Пользователь
 
Регистрация: 21.08.2012
Сообщений: 47
По умолчанию

нашел в интернете метод загрузки со скрытым фреймом:
http://biznesguide.ru/coding/126.html

У меня не заработал код. Да и демо их не работает: http://biznesguide.ru/demo/uploads/

Выводит фразу "Идет загрузка файла" и так и остается. Второй скрипт не срабатывает или что?

Последний раз редактировалось Mick_20; 24.03.2014 в 16:13.
Mick_20 вне форума Ответить с цитированием
Старый 24.03.2014, 23:03   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Скрытый айфрейм — это и есть ajax.
Уже сказал, что есть 2 основных способа загрузки:
1. выплюнуть на бэкенд сразу (айфрейм)
2. файл-API, обработка файла на клиенте с последующей отправкой, для тру-браузеров.
Первое решение простое, кросс-браузерное, быстрое как для фронт-, так и для бэкенда, ибо минимум телодвижений с обеих сторон.
Для второго варианта надо курить доки, с точки зрения фронтенда сложная дрянь и дорогая, так как для говнобраузеров придется делать GD. Для бэкенда придется обрабатывать новый поток данных, не знаю, распарсит ли автоматом пых бэйс64...
Как оно на серверной стороне делается я не подскажу, не мой профиль. Тем более пыхопе *сморщеный смайл*.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 25.03.2014, 08:05   #7
Mick_20
объявления
Пользователь
 
Регистрация: 21.08.2012
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Скрытый айфрейм — это и есть ajax.
Уже сказал, что есть 2 основных способа загрузки:
1. выплюнуть на бэкенд сразу (айфрейм)
Дык я вот нашел с iframe и не работаем там код. Почему не пойму.
Mick_20 вне форума Ответить с цитированием
Старый 25.03.2014, 13:30   #8
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
... не работаем там код. Почему не пойму.
Как правило ответ на этот вопрос даёт консоль.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 26.03.2014, 08:20   #9
Mick_20
объявления
Пользователь
 
Регистрация: 21.08.2012
Сообщений: 47
По умолчанию

Заглянул с консоль - там ругается на метод ready но в коде такого нет.
Изображения
Тип файла: jpg 123.jpg (16.5 Кб, 127 просмотров)
Mick_20 вне форума Ответить с цитированием
Старый 26.03.2014, 16:39   #10
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

В коде нет? Не верю. Ошибка есть, значит и в коде есть. Консоль никогда не врёт, говорит только факты. Вам хром даже покажет то место, где рушится код, если ткнёте на ссылку справа.

А вообще меня это удивляет. Сначала на форуме спрашить, а потом уже только глядеть в консоль, потеряв при этом много времени. Где логика? :unsure:
^-.-^ My GitHub

Последний раз редактировалось Fenex; 26.03.2014 в 16:42.
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фото в ячейке или загрузка по ссылке Cpluser Microsoft Office Excel 6 16.09.2012 22:53
Загрузка фото в альбом ВКонтакте Sergey1974 Работа с сетью в Delphi 0 12.06.2011 00:52
Загрузка фото на сайт? PSix1_73 PHP 1 04.08.2009 04:40
загрузка фото на сайт!! sf911 HTML и CSS 13 24.12.2008 22:53
загрузка фото на сайт sf911 Помощь студентам 3 20.12.2008 21:05