Pereiti prie turinio

keliamo i ftp ir mysql failo pervadinimas


Svečias Donatis07

Rekomenduojami pranešimai

Svečias Donatis07

Sveiki,

 

turiu pasirašęs tokį kodą

	$katalogas = "images/photoalbum/skelbimai/";
@copy($_FILES['pasiulymo_pirmafoto']['tmp_name'], $katalogas.$_FILES['pasiulymo_pirmafoto']['name']);
@copy($_FILES['pasiulymo_antrafoto']['tmp_name'], $katalogas.$_FILES['pasiulymo_antrafoto']['name']);
@copy($_FILES['pasiulymo_treciafoto']['tmp_name'], $katalogas.$_FILES['pasiulymo_treciafoto']['name']);
@copy($_FILES['pasiulymo_ketvirtafoto']['tmp_name'], $katalogas.$_FILES['pasiulymo_ketvirtafoto']['name']);

$foto1 = $_FILES['pasiulymo_pirmafoto']['name'];
$foto2 = $_FILES['pasiulymo_antrafoto']['name'];
$foto3 = $_FILES['pasiulymo_treciafoto']['name'];
$foto4 = $_FILES['pasiulymo_ketvirtafoto']['name'];

 

ir noriu, kad keliamo failo pavadinimas būtų pakeistas iš originalaus į bet kokius atsitiktinius skaičius ar dar kažką...

 

viskas būtų paprasta, tačiau kaip matote, formoje yra keturi failų pasirinkimo input'ai ir jeigu bent vienas nėra įkeliamas, noriu, kad į duomenų bazę nebūtų įrašoma jokia reikšmė...

 

Pavyzdys:

mano pc yra failas bla.jpg

keliu failą į ftp - keičiasi jo pavadinimas (tarkim 1234587.jpg)

į duomenų bazę įrašomas naujas failo pavadinimas (1234587.jpg)

pavadinimai negali kartotis.

jei įkeliami tik 1, du ar trys failai - kitų reikšmės duomenų bazėje turi būti tuščias laukas.

 

---

taip pat reikia, kad keliamiems failams būtų uždėtas dydžio ir plėtinio apribojimas (galimi tik .jpg, .jpeg, .gif)

 

na tikiuosi suprasit...

 

dėkoju už pagalbą!

 

P.S. mysql užklausą pasirašęs...

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • Administratoriai

...

išvis logikos nematau daryti skirtingus foto inputo pavadinimus, geriau daryti taip:

Nuotrauka 1<br />
<input type="file" name="pic[]" />
Nuotrauka 2<br />
<input type="file" name="pic[]" />
...
ir t.t.

 

Tada per php pasiimsi iš eilės ir užvadinsi kaip nori

 

 

$katalogas = "images/photoalbum/skelbimai/";
foreach ($_FILES['pic']['error'] as $key => $klaida) {
if ($klaida == UPLOAD_ERR_OK) {
$pavad = time().mt_rand().'_'.strtolower($_FILES['pic']['name'][$key]);
@move_uploaded_file($_FILES['pic']['tmp_name'][$key], $katalogas.$pavad);
// darai ką nori su pavadinimu, galima užsetinti, kad ir taip:
$image[$img] = $pavad;
$img++;
}
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Svečias Donatis07

išvis logikos nematau daryti skirtingus foto inputo pavadinimus, geriau daryti taip:

Nuotrauka 1<br />
<input type="file" name="pic[]" />
Nuotrauka 2<br />
<input type="file" name="pic[]" />
...
ir t.t.

 

Tada per php pasiimsi iš eilės ir užvadinsi kaip nori

 

 

$katalogas = "images/photoalbum/skelbimai/";
foreach ($_FILES['pic']['error'] as $key => $klaida) {
if ($klaida == UPLOAD_ERR_OK) {
$pavad = time().mt_rand().'_'.strtolower($_FILES['pic']['name'][$key]);
@move_uploaded_file($_FILES['pic']['tmp_name'][$key], $katalogas.$pavad);
// darai ką nori su pavadinimu, galima užsetinti, kad ir taip:
$image[$img] = $pavad;
$img++;
}
}

 

o kaip iš vieno field'o atskirai paskui foto išdėliot į skirtingas lenteles? :|

Nuoroda į pranešimą
Dalintis kituose puslapiuose
Svečias Donatis07

išvis logikos nematau daryti skirtingus foto inputo pavadinimus, geriau daryti taip:

Nuotrauka 1<br />
<input type="file" name="pic[]" />
Nuotrauka 2<br />
<input type="file" name="pic[]" />
...
ir t.t.

 

Tada per php pasiimsi iš eilės ir užvadinsi kaip nori

 

 

$katalogas = "images/photoalbum/skelbimai/";
foreach ($_FILES['pic']['error'] as $key => $klaida) {
if ($klaida == UPLOAD_ERR_OK) {
$pavad = time().mt_rand().'_'.strtolower($_FILES['pic']['name'][$key]);
@move_uploaded_file($_FILES['pic']['tmp_name'][$key], $katalogas.$pavad);
// darai ką nori su pavadinimu, galima užsetinti, kad ir taip:
$image[$img] = $pavad;
$img++;
}
}

 

na šiaip ne taip padariau su šituo kodu, tačiau dar viena bėda, į duomenų bazę įrašo tik vieną failą - paskutinį, o ftp jie yra visi, kiek keliu... kaip dar tą išspręst? kurią reikšmę rašyt prie sql užklausos? $image ? bet su $image man į db įrašo reikšmę Array ir viskas ;/

 

Padėkit, prašau

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose
Svečias Donatis07

išvis logikos nematau daryti skirtingus foto inputo pavadinimus, geriau daryti taip:

Nuotrauka 1<br />
<input type="file" name="pic[]" />
Nuotrauka 2<br />
<input type="file" name="pic[]" />
...
ir t.t.

 

Tada per php pasiimsi iš eilės ir užvadinsi kaip nori

 

 

$katalogas = "images/photoalbum/skelbimai/";
foreach ($_FILES['pic']['error'] as $key => $klaida) {
if ($klaida == UPLOAD_ERR_OK) {
$pavad = time().mt_rand().'_'.strtolower($_FILES['pic']['name'][$key]);
@move_uploaded_file($_FILES['pic']['tmp_name'][$key], $katalogas.$pavad);
// darai ką nori su pavadinimu, galima užsetinti, kad ir taip:
$image[$img] = $pavad;
$img++;
}
}

 

na šiaip ne taip padariau su šituo kodu, tačiau dar viena bėda, į duomenų bazę įrašo tik vieną failą - paskutinį, o ftp jie yra visi, kiek keliu... kaip dar tą išspręst? kurią reikšmę rašyt prie sql užklausos? $image ? bet su $image man į db įrašo reikšmę Array ir viskas ;/

 

Padėkit, prašau

 

kaip padaryt, kad masyve rodytu ne paskutini faila, o visus??? ;/

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...
Svečias Donatis07

padėkit pervadint įkeliamą failą.

 

bandžiau daryt taip tada visai nekelia failo...

$photo_name = time().'-'.mt_rand().'_'.strtolower(substr($photo_pic['name'], 0, strrpos($photo_pic['name'], ".")));

 

pilnas kodas, kurį naudoju:

$photo_file1 = ""; $photo_thumba1 = ""; $photo_thumb2 = "";
		if (is_uploaded_file($_FILES['pasiulymo_pirmafoto']['tmp_name'])) {
			$photo_types = array(".gif",".jpg",".jpeg",".png");
			$photo_pic = $_FILES['pasiulymo_pirmafoto'];
			$photo_name = strtolower(substr($photo_pic['name'], 0, strrpos($photo_pic['name'], ".")));
			$photo_ext = strtolower(strrchr($photo_pic['name'],"."));
			$photo_dest = SKELBIMAI;
			if (!preg_match("/^[-0-9A-Z_\.\[\]]+$/i", $photo_pic['name'])) {
				$error = 1;
			} elseif ($photo_pic['size'] > $settings['photo_max_b']){
				$error = 2;
			} elseif (!in_array($photo_ext, $photo_types)) {
				$error = 3;
			} else {
				$photo_file1 = image_exists($photo_dest, $photo_name.$photo_ext);
				move_uploaded_file($photo_pic['tmp_name'], $photo_dest.$photo_file1);
				chmod($photo_dest.$photo_file1, 0644);
				$imagefile = @getimagesize($photo_dest.$photo_file1);
				if ($imagefile[0] > $settings['photo_max_w'] || $imagefile[1] > $settings['photo_max_h']) {
					$error = 4;
					unlink($photo_dest.$photo_file1);
				} else {
					$photo_thumba1 = image_exists($photo_dest, $photo_name."_t1".$photo_ext);
					createthumbnail($imagefile[2], $photo_dest.$photo_file1, $photo_dest.$photo_thumba1, $settings['thumb_w'], $settings['thumb_h']);
					if ($imagefile[0] > $settings['photo_w'] || $imagefile[1] > $settings['photo_h']) {
						$photo_thumb2 = image_exists($photo_dest, $photo_name."_t2".$photo_ext);
						createthumbnail($imagefile[2], $photo_dest.$photo_file1, $photo_dest.$photo_thumb2, $settings['photo_w'], $settings['photo_h']);
					}
				}
			}
		}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pora istrauku is savo klases, turetum suprasti.

 

$this->users_files[1] = $this->current_files_paths[1].self::get_new_id($_FILES['cv']);
move_uploaded_file($_FILES['cv']['tmp_name'], getcwd().$this->users_files[1]);

 

private function get_new_id($file){
return uniqid(time()).".".self::current_file_type($file);
}

private function current_file_type($file){
return strtolower(substr(strrchr($file['name'], '.'), 1));		
}

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

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

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...