Autor Zpráva
Noem
Profil *
Dobry den,
znovu Vas prosim o radu.

Potreboval by som vytvorit maly system, ktory bude uplaodovat subory (10ky - 100ky MB) na server. To nieje ziadny problem, vsak, mozno pouzit Perl + AJAX a pekne to vsetko spravit. To iste by sa mozno dalo zbuchat aj v PHP s rozsirenim uploadprogress (ktore mi akosi nefungovalo).

Moj problem je v tom, ze potrebujem vytvorit formular, pomocou ktoreho ked odoslem subor na server, subor sa zacne nahravat, ale prehliadac nezacne nacitavat stranku (teda zostane uplne tak ako pred odoslanim formulara, ale subor sa bude nahravat). Ked sa subor cely nahra, stranka sa refreshne na nejaky ten script post.php kde bude vystup (tento script spracuje odoslany subor a vypise vystup).

Nech sa snazim akokolvek, nenapada ma dostupne riesenie ako to spravit. Existuje nejaka moznost ako to spravit? Nieje mozne napriklad v JavaScripte ihned ako odoslem form so suborom uviest stranku do "kludu" - teda ze nebude nabiehat nacitavanie dalsej stranky (uspat ju) ?

Dakujem za vsetky napady
Goumbik
Profil
K http://b-design.ezin.cz/upload/ se přidá přes JS upload progress a bylo by to ono,ne ?
Noem
Profil *
Nie, nebolo by to ono.

Ja som napisal, ze ta stranka sa nesmie nacitavat. To znamena, ze ked odoslem formular, tak ta stranka zostane uplne v klude (bez nacitavania dalsej stranky resp. bez toho, zeby sa zobrazilo v prehliadaci ze sa nieco na server posiela).
Goumbik
Profil
Kdybych vynechal to aktualizování stránky,hezky to mají udělané na Edisku (edisk.cz)
Medvídek
Profil
http://www.seemysites.net/projFolder/uploader/

co toto :)
majkloň
Profil *
tak zkus ten formulář kterým to odesíláš vložit do stránky přes iframe, tím potom nemusíš refreshovat stránku a pak přes JS až to bude uplé můžeš vrátit výsledek že to je hotovo, nebo to už pak záleží na tobě co s tím dál
Medvídek
Profil
Teď sem to řešil u sebe na stránkách a funguje uplně nádherně !!

<script language="javascript" type="text/javascript">
<!--
function startUpload(){
      document.getElementById('f1_upload_process').style.visibility = 'visible';
      document.getElementById('f1_upload_form').style.visibility = 'hidden';
      return true;
}

function stopUpload(success){
      var result = '';
      if (success == 1){
         result = '<span class="msg">Avatar byl v pořádku nahrán!<\/span><br/><br/>';
      }
      else {
         result = '<span class="emsg">Vyskytla se chyba při nahrávání!<\/span><br/><br/>';
      }
      document.getElementById('f1_upload_process').style.visibility = 'hidden';
      document.getElementById('f1_upload_form').innerHTML = result + '<label>File: <input name="myfile" type="file" size="30" /><\/label><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>';
      document.getElementById('f1_upload_form').style.visibility = 'visible';      
      return true;   
}
//-->
</script>   
       <div id="container">
            <div id="header"><div id="header_left"></div>
            <div id="header_main">Upload avataru</div><div id="header_right"></div></div>
            <div id="content">
                <form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" >
                     <p id="f1_upload_process">Nahrávám avatar ...<br /><img src="images/loader.gif" /><br /></p>
                     <p id="f1_upload_form" align="center"><br />
                         <label>File:  
                              <input name="myfile" type="file" size="30" />
                         </label>
                         <label>
                             <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
                         </label>
                     </p>
                     
                     <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
                 </form>
             </div>
         </div>


UPLOAD.php

<?php
session_start();
include "funkce.php";
$id=$_SESSION["id"];
   $result = 0;
   $cas=StrFTime("%H-%M-%S", Time());
   $datum=StrFTime("%Y-%m-%d");
   $jmeno=$_FILES['myfile']['name'];
   $nazev=$datum."-".$cas."-".$jmeno;
   $target_path = "avatari/".$nazev;

   if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) 
   {
      $result = 1;
      $vysledek=mysql_query("UPDATE uzivatele SET avatar='$nazev' WHERE id='$id' ");
   }
   
   
   sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>   



Ale mam takový malinkatý dotaz ...... Potřeboval bych, aby se po uploadu ten nahraný avatr zobrazil :( Nevíte jak na to ?
krteczek_jinde
Profil *
musíš si počkat na odpověď serveru, kterou může být například adresa/jméno obrázku a přes js to zpracuješ a zobrazíš
Medvídek
Profil
Bohužel JS moc neumim :( počítám, že JS vrací při uploadu hodnotu $RESULT

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>   


Ale vůbec netušim jak udělat, aby mi vrátil něco jako adresu obrazku, a na druhy strane se podle toho obrazek zobrazil
bary
Profil *
děkuji za tipy ale když jsem si okopíroval ten kód <?php
session_start();
include "funkce.php";
$id=$_SESSION["id"];
$result = 0;
$cas=StrFTime("%H-%M-%S", Time());
$datum=StrFTime("%Y-%m-%d");
$jmeno=$_FILES['myfile']['name'];
$nazev=$datum."-".$cas."-".$jmeno;
$target_path = "avatari/".$nazev;

if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path))
{
$result = 1;
$vysledek=mysql_query("UPDATE uzivatele SET avatar='$nazev' WHERE id='$id' ");
}


sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>

a uložil jsem to jako upload.php tak se mi to otevřelo jen jako txt a když jsem to uložil jako upload.html tak se nezobrazilo nic tak nevím co stim mam udelat v php jsem jen zacatecnik jinak mi html jde dobre to muzete videt na www.baraja.ic.cz to je muj nejnovejsi a nejpropracovanejsi web dekuji za odpoved

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: