Jump to content
php.lv forumi

Faila pārsaukšana un reģistrēšana.


irontt

Recommended Posts

Sveiki!

 

Sapratu ka pirmstam biju iemaldījies nepareizajā sadaļā. Tad nu tādi tie pīrāgi.

1. Kā vispareizāk panākt to, ka pie reģistrācijas, username lauka saturs drīkst saturēt tikai burtus un ciparus?

2. izveidoju tādu fišku ka reģistrējoties lietotājs izveido savu folderi ar nosaukumu $username, un pie augšupielādes fails nonāk mapē users/$username/, kā arī izveidoju datu bāzē tabulu "posts" ar kolonnām id un autors.

Jautājums - kā panākt lai fails upload procesā tiek nosaukts 1.jpg > ja 1.jpg jau eksistē tad 2.jpg utt. kā arī tajā pašā laikā šis nummurs tiek saglabāts datubāzē, id kolonnā.

 

Paldies!

Link to comment
Share on other sites

1. ar regexp'u ^[a-zA-Z0-9]+$

2.

foldera izveide: http://php.net/manual/en/function.mkdir.phpkā nosaukumu ņem to ko useris ievada username laukā

lai fails nonāktu pēc uploada usera folderī izmanto http://php.net/manual/en/function.move-uploaded-file.php

faila pārsaukšana: http://stackoverflow.com/a/18705701/2936503

ja gribi lai ir 2.jpg ja jau ir 1.jpg tad ar http://php.net/manual/en/function.file-exists.phppārbaudi vai fails eksistē 

tad šo jauno faila nosaukumu inserto posts tabulā piemērs http://stackoverflow.com/a/18655812/2936503

Link to comment
Share on other sites

Nevajag glabāt pa kaut kādām useru direktorjām. Kas notiek, ja useris pamaina vārdu? Pārāk liels čakars

 

1. Failu nosauc md5(uniqid()); // 
2. Saglabā datubāzē: userId, faila_hash, faila_istais_vards

 

Uzraksti funkciju, kas, saņemot to hashu, atgriež faila pilno ceļu, piemēram:

function getFilenameFromHash($hash){
   return '/upload/' . substr($hash, 0, 2) . '/' . $hash;
}

 

3. Izveido mapi kur glabā failu

mkdir(dirname(getFilenameFromHash($hash));

 

4. Saglabā pašu failu uz konkrēto ceļu:

move_uploaded_file(...)

 

 

 

Lai lejuplādētu failu, uzraksta php skriptu, kam padod GET parametros kuru failu vajag, un skripts viņu dod ārā lejuplādēšanai: http://php.net/manual/en/function.readfile.php

Link to comment
Share on other sites

Nu, paldies jums! Tik tālu viss strādā, bija problēma ar lielajiem un mazajiem burtiem userneimos, bet to it kā salaboju ar

onChange="javascript:this.value=this.value.toLowerCase(); 

radīšanas procesā sāku pārdomāt par to taimlainu, kas un kā, bet pagaidām atpūtīšos no šīs idejas (ganjau uznāks iedvesma).

 

PS. arī čakarējoties ar šo, radās cita ideja un to arī divu nakšu laikā realizēju, ček lapu/darbu novērtēšanas sadaļu.

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...