Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> загрузка файлов динамически 
:(
    Опции темы
bazzjr
Дата 19.1.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Всем привет.
Вопрос в следущем:

есть форма, и маленький скриптик принимающаи файл от юзера.

Код

function sub_upl_form(){
    window.document.getElementById('loading-layer').style.display='block';
    window.document.upl_form.submit();
}
</script>
<form name="upl_form" id="upl_form"  onSubmit="sub_upl_form();" method="post" enctype="multipart/form-data" action="upload.php" target="upl_frame">


<div id="loading-layer"><div id="loading-layer-text">Загрузка. Пожалуйста, подождите...</div></div>


<iframe id="upl_frame" name="upl_frame" width=0 height=0 style="display:none;"></iframe>
<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data"  target="upl_frame">
    <input name="userfile" type="file">
    <input type="button" value="Загрузить" name="submit">
</form>

<span id="foto"></span>


ну и естественно все это обрабатывается в пхп файле, и выдает картинку.

как сделать так чтобы файл загружался при "onChange" а не при submit?
вообщем хочу так же как и на сайте dom.ru, когда подаешь объявление и добавляешь фото к обьяве.

Спасибо.
PM MAIL ICQ   Вверх
NNaarreekk
Дата 20.1.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Код

function sub_upl_form(){
    window.document.getElementById('loading-layer').style.display='block';
    window.document.upl_form.submit();
}

Код

<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data" action="upload.php" target="upl_frame">
<div id="loading-layer"><div id="loading-layer-text">Загрузка. Пожалуйста, подождите...</div></div>
<iframe id="upl_frame" name="upl_frame" width=0 height=0 style="display:none;"></iframe>
<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data"  target="upl_frame">
    <input name="userfile" type="file" onchange="sub_upl_form();">
    <input type="button" value="Загрузить" name="submit">
</form>
<span id="foto"></span>

PM MAIL WWW   Вверх
bazzjr
Дата 20.1.2009, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



 <input name="userfile" type="file" onchange="sub_upl_form();">

К сожалению этот вариант я и сам делал, но он не работает.
При использовании onchange="sub_upl_form(), почему то не вызывается файл upload.php.
PM MAIL ICQ   Вверх
NNaarreekk
Дата 20.1.2009, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Говорили же мне люди проверяй перед тем кк написать smile 

Код

function sub_upl_form(){
    window.document.getElementById('loading-layer').style.display='block';
    window.document.upl_form.submit();
}


Код

<div id="loading-layer"><div id="loading-layer-text">Загрузка. Пожалуйста, подождите...</div></div>
<iframe id="upl_frame" name="upl_frame" width=0 height=0 style="display:none;"></iframe>

<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data" action="upload.php" target="upl_frame">
    <input name="userfile" type="file" onchange="sub_upl_form();">
</form>

<span id="foto"></span>


Обяснишь почему два <form-а? ;)
PM MAIL WWW   Вверх
bazzjr
Дата 20.1.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Непойму прикол... почему то так работает только на локальной машине... выкладываю в инет файл не загружается, только появляится и висит табличка "Загрузка. Пожалуйста, подождите..."

В чем может быть ошибка?..
Причем на серваке все настройки  по файлам и т.п. в поряде.

КОД upload.php:

Код

<?php

require("inc/config.php");


$directory_location="files/domfoto/";
if (is_uploaded_file($_FILES['userfile']['tmp_name'])){
        $sim = strlen($_FILES['userfile']['name']);
        $type = trim(substr($_FILES['userfile']['name'],$sim-3,$sim));
        $time_=time();
        $filename = $time_.".$type";
        copy($_FILES['userfile']['tmp_name'], $directory_location.$filename);
}
$error=0;
if ($error==0){
    echo '<script>';
    echo 'window.parent.document.getElementById(\'foto\').innerHTML=\''.$err.'<center><img align=center src="'.$url_foto.$filename.'"></center>\';';
    echo 'window.parent.document.getElementById(\'loading-layer\').style.display=\'none\';';
    echo '</script>';
}else{
    echo '<script>alert("Ошибка при загрузке файла");</script>';
    echo '<script>';
    echo 'window.parent.document.getElementById(\'loading-layer\').style.display=\'none\';';
    echo '</script>';
}
?>


Это сообщение отредактировал(а) bazzjr - 20.1.2009, 20:36
PM MAIL ICQ   Вверх
NNaarreekk
Дата 20.1.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Убери display:none; из фрейма и посмотри какие Warrning-и появляются
PM MAIL WWW   Вверх
bazzjr
Дата 21.1.2009, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Убрал... все осталось так же... т.е. при при выборе файла появляется табличка, и все... висит так... занрузки файла не происходит.
На localhost все работает, файл грузится табличка убирается (после загрузки).

Блин третий день АП клаву бьюсь гологой,  и танцевал с бубнами уже...  непомогает...
неужели нет вариков реализовать такую же загрузку файлов как и на сайте dom.ru????   smile 
PM MAIL ICQ   Вверх
unicross
Дата 21.1.2009, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



bazzjr, Ваш вопрос больше по JS, чем по PHP. Если бы вы задали вопрос там, то сразу получили бы ответ...

Код

<script language="JavaScript">
function sub_upl_form(){
    window.document.getElementById('loading-layer').style.display='block';
    window.document.getElementById('upl_form').submit();
}
</script>

<div id="loading-layer" style="display: none;"><div id="loading-layer-text">Загрузка. Пожалуйста, подождите...</div></div>

<iframe id="upl_frame" name="upl_frame" width=20 height=20 style="display:none;"></iframe>
<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data"  target="upl_frame" action="upload.php">
    <input name="userfile" type="file" onchange="sub_upl_form();">
</form>

<span id="foto"></span>


Файл upload.php:
Код

<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])){
        $sim = strlen($_FILES['userfile']['name']);
        $type = trim(substr($_FILES['userfile']['name'],$sim-3,$sim));
        $time_=time();
        $filename = $time_.".$type";
        copy($_FILES['userfile']['tmp_name'], $filename);
    $error=0;
}
if ($error==0){
    echo '<script>';
    echo 'window.parent.document.getElementById(\'foto\').innerHTML=\''.$err.'<center><img align=center src="'.$url_foto.$filename.'"></center>\';';
    echo 'window.parent.document.getElementById(\'loading-layer\').style.display=\'none\';';
    echo '</script>';
}else{
    echo '<script>alert("Ошибка при загрузке файла");</script>';
    echo '<script>';
    echo 'window.parent.document.getElementById(\'loading-layer\').style.display=\'none\';';
    echo '</script>';
}
?>


Удачи!
PM MAIL WWW   Вверх
bazzjr
Дата 21.1.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



unicross  вставил пути  и все разаботало!  smile  smile
выходит прикол в том что вместо window.document.upl_form.submit(); надо писать window.document.getElementById('upl_form').submit(); ????? 

Это сообщение отредактировал(а) bazzjr - 21.1.2009, 17:24
PM MAIL ICQ   Вверх
unicross
Дата 21.1.2009, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



Цитата(bazzjr @  21.1.2009,  17:06 Найти цитируемый пост)
выходит прикол в том что вместо window.document.upl_form.submit(); надо писать window.document.getElementById('upl_form').submit(); ????? 

Нет. Думаю будет работать и так...

bazzjr, во-первых у вас было 2 формы:
Цитата(bazzjr @  19.1.2009,  20:47 Найти цитируемый пост)
<form name="upl_form" id="upl_form"  onSubmit="sub_upl_form();" method="post" enctype="multipart/form-data" action="upload.php" target="upl_frame">

Цитата(bazzjr @  19.1.2009,  20:47 Найти цитируемый пост)
<form name="upl_form" id="upl_form" method="post" enctype="multipart/form-data"  target="upl_frame">

Как видете во втором теге <form> нет action="upload.php".

Во-вторых, не было параметра style со значением none в div
Код

<div id="loading-layer" style="display: none;">


PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1047 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.