Jump to content
php.lv forumi

atvērt file borowser


ziedinjsh

Recommended Posts

Sveiki, vai var uztaisīt ko tādu:

 

piem man ir div

<div id='avatar' class='file'>izvēlies bildi</div>

 

un uzspiežot uz viņa, viņš veic tādu pašu funkciju kā

<input type='file' name='avatar' class='file'>

 

Šitā man nestrādāja

$(document).ready(function() {
$(this).parents("#avatar").find("input[type='file' name='avatar']").trigger('click');
});

 

Paldies jau iepriekš!

Edited by ziedinjsh
Link to comment
Share on other sites

nu tā.. it kā viss būtu salikts.. bet tikai kad izvēlos failu parāda augšupielādēšanās progres kurš stāv uz vietas un nekustās.. kapēc tās?

 

avatar_process.php

if (!empty($_FILES)) {
$data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE email='".$_SESSION['email']."'"))or die(mysql_error());

$folder = "../avatars/";
$image = mysql_real_escape_string($_FILES['avatar']['name']);
$tmp = mysql_real_escape_string($_FILES['avatar']['tmp_name']);
$type = mysql_real_escape_string($_FILES['avatar']['type']);
$size = mysql_real_escape_string($_FILES['avatar']['size']);

$iname = trim($data['username']);
$avatar = $iname."_".basename($_FILES['avatar']['name']);
$uploading = $folder.$iname."_".basename($_FILES['avatar']['name']);

$statuss = "ok";

if(empty($image)){
$error = "<div class='i-error'>Nav izvēlēts neviens fails!</div>";
	$statuss = "error";
}
if (!$type == "image/jpeg" || !$type == "image/jpg"){
$error = "<div class='i-error'>Nepareizs faila formāts</div>";
	$statuss= "error";
}
if(file_exists($data['avatar'])){
unlink($folder."/".$data['avatar']);
}

if($statuss<>"ok"){
echo $error;
}else{

$sql = mysql_query("UPDATE users SET avatar='$avatar' WHERE email='".$_SESSION['email']."'") or die(mysql_error());
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $uploading)){

createAvatar70("../avatars/","../avatars/small/",70);
createAvatar200("../avatars/","../avatars/medium/",200);
createAvatar400("../avatars/","../avatars/",400);


}
header("Location: ../index.php?p=profile&profile=avatar");
}
}

Edited by ziedinjsh
Link to comment
Share on other sites

Nu reāli speciālos inputus var saveidot arī ar css, vienīgais, tur ir jāsataisa pa slāņiem viss, apkārt nāk divs, tam virsu relatīvas pozīcijas, apakšā inputs ar savām pozīcijām, utt...

 

Nu piemēram:

 

http://www.kavoir.com/2009/02/styling-file-upload-select-input-control-input-typefile.html

 

Protams, ja es pareizi esmu sapratis domu.

Link to comment
Share on other sites

Ja gribi tam failu upldam smuku dizainu, tad ir samērā hitrs risinajums.

Tam input file laukm ir jaabuut, bet viņs var būt CAURSPĪDĪGS ;)

1. tatad izveidojm

<input type="file" name="xxxxxx" id="fails"  onchange="paraadit(this.id,'id_2')">

, un nopozicionējam ar position: absalute, un norādam kurā slānī viņam but [ z-index: 999 ]

 

2. CSS uzliekam šādus atribūtus

-moz-opacity:0 ;
filter:alpha(opacity: 0);
opacity: 0;  

tas ir padaram vīņu neredzmu

3. ZEM tā brofse butona izveideojam nepiecīešmo zīmējumu, vai jabkuru zitu dizaina elementu (pogu pēc izskatā kādu vēlies)

un nopozicinējam viņu ar position:absalute tieši zem brofse pogas ( izmantojot z-index:888) [vismaz 1 līmeni zemak nekā input laukam]

4. zem vile input teksta laucīņa , izveidojam parastu input type="text" ar id="id_2" lauku, (protams position absalute...)

5. izveidojam JS funkciju paraadit()

function paradit(id_x)
{
var kas=document.getElementById(id,id_2).value;  
document.getElementById(id_2).value=kas;   
return false;
}

--

tātad visam šmam murgam domai ir:

a) noslēp to file ievades lauku, bet atstāt vīņu aktīvu.

b) tad kad useris ir izvēlējies vajadzīgo faila ceļu , parādīt to userim

--

šāda shema strādā gandrīz uz visiem brauzeriem

pats esmu testējis

IE6- IE8

Opera, Firefox, Safari

---

P.S. lielākā problema ir tā ka katram brauzerim tā poga 'brofse' ir atšķirīgos lielumos :(

 

Edit:

apkārt nāk divs, tam virsu relatīvas pozīcijas, apakšā inputs ar savām pozīcijām, utt...

 

Inputs ir VIRSU, nevis apakšā. savādāk uz viņa nevarēs uzklikot, attiecīgi atvērt meklēšanas logu ...

Edited by Grey_Wolf
Link to comment
Share on other sites

uztaisīju tā, bet lieta tāda ka uzspiežot uz to manis izveidotās pogas nekas nenotiek!

 

<form method='post' action='process/avatar_process.php' enctype='multipart/form-data'>
<p><input type='file' name='avatar' id='file'  onchange=\"show(this.id,'id_2')\" class='pfile'><div class='choseb'>Izvēlies failu</div></p>
<p><input type='text' id='id_2' style='width:400px;border:0px solid #ccc;position:absalute;'></p>
<p><input type='submit' name='addavatar' value='Pievienot' class='button'></p>
</form>

Link to comment
Share on other sites

uztaisīju tā, bet lieta tāda ka uzspiežot uz to manis izveidotās pogas nekas nenotiek!

 

<form method='post' action='process/avatar_process.php' enctype='multipart/form-data'>
<p><input type='file' name='avatar' id='file'  onchange=\"show(this.id,'id_2')\" class='pfile'><div class='choseb'>Izvēlies failu</div></p>
<p><input type='text' id='id_2' style='width:400px;border:0px solid #ccc;position:absalute;'></p>
<p><input type='submit' name='addavatar' value='Pievienot' class='button'></p>
</form>

1. kur ir tam file inputam CSS ?

2. kur ir lauka pozicionēšna

3. kur ir JS funkcija?

4. kāpēc pirms onchange pēdiņam ir slash (kas viņs likvidē)

5. tai tavai veidotaja poga ir jābūt ZEM īstās brofse pogas, (tādēļ jau tiek izmantos Positin: absalute un tie z-indexi )

reāli jau tiek spiests uz ISTĀS pogas, nevis uz tava lauka, kas tikai uzlikts smukumam, jo īstā poga ir NEREDZMA .

Link to comment
Share on other sites

esmu par daG. variantu! Ar niecīgām zināšanām uzstādīju arī es. Nav tur tik daudz failu. + extra glītas fīčas.

 

Nu plus tam štruntam ir tāds, ka var izvēlēties, ka, piemēram, ne tikai vienu failu reizē var augšupielādēt. Kaut vai simts... Var izvēlēties, ka rāda tādu kā "loading bar", kura Tu vari redzēt pašreizējo progresu failiem. Visādi sīki, bet noderīgi štruntiņi ir tajā štruntiņā. 0_o

Link to comment
Share on other sites

Hmmm... 'visibility: invisible;'?

nee caurspidīgums, Alpha kanls norada uz caurspīdigumu, tur varuzlikt arī daļēju - puscaurspīdīgu, ta ari jādara kamēr pieregulē atrašanās vietu.

Jo šjā gadījumā elements ir pilnībā aktīvs, ieskaitot ka aizņem tam paredzēto vietu etc., bet tikai caurspīdīgs.

 

esmu par daG. variantu! Ar niecīgām zināšanām uzstādīju arī es. Nav tur tik daudz failu. + extra glītas fīčas.

 

ne vienmēr tas der, jo ja prasīgs klients atsūtīs dizainu, tad nekādi pašdarbības gājieni neies cauri ...

(būs klients, kas skaidri norādīs, ka visam jāstrādā arī uz IE6, un stāstīt ka tas nav forši ir bezcerīgi,

atbilde būs: - nevari? Atradīšu kas var/māk.

Piedevām kad saprot ideju, uztaisīt ir pilnīgi elementāri, tik cik pāris rindiņas kodā.

Edited by Grey_Wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...