file feltöltése form D6

lili_ képe

készítek egy saját modul,van benne egy kis fvény ami kép feltöltést tenne lehetővé, megadott elérési úthoz.
pontosabban: van egy személy táblám, minden személynek van ugye [id]-ja
minden személyhez fel lehetne tölteni egy képet a files/szemelyek/[id] könyvtárba
a kódrészletem

function szemelyek_ujkep_feltoltese_form(&$form_state){
 
 
    $form["ke"] = array(
		"#type" => "file",
		"#title" => t("File"),
		"#description" => t("Kérem töltse fel a képet."),
		"#size" => 40
	);
 
		$form["feltolt"] = array(
		"#type" => "submit",
		"#value" => t("Feltöltés"),
		"#submit" => array("szemelyek_ujkep_feltoltese_submit")
 
	);
 
	 $form['#attributes'] = array('enctype' => 'multipart/form-data');
 
 
return $form;
 
}
 
function szemelyek_ujkep_feltoltese_submit($form, &$form_state){
 
$pp= ics_pathvars("szemely_adatai/");
$id=$pp[0];/*SZEMELY ID*/
 
$egy="files/szemelyek/";
 
 
/*IDE KELL ELMENTENI A KÉPET*/
$save_path = "files/szemelyek/".$id;
 
 
 //és utána elmentem az általam megadott könyvtárba
/*HA A files/szemelyek KÖNYVTÁR HA NEM LÉREZTIK AKKOR LÉTREHOZZA*/
if (file_check_directory($egy, FILE_CREATE_DIRECTORY))
	{
 
	/*HA A FILES/SZEMELYEK/ID KÖNYVTÁR HA NEM LÉREZTIK AKKOR LÉTREHOZZA*/
		if (file_check_directory($save_path, FILE_CREATE_DIRECTORY))
		{
			$file = file_save_upload("ke", $save_path);
 
	}
}
    drupal_set_message("A kép feltöltése megtörtént.");	
	}

anno D5 alatt megírtam és működik is szépen de most át kell raknom 6 alá, és valahogy nem látom mitől nem működik ::(

Drupal verzió: 
nevergone képe

A "nem működik" pontosan mit jelent?

0
0
lili_ képe

kiírja azt amit a drupal_get_message fvényben megadok, h a kép feltöltése megtörtént,
de amikor megnézem a könyvtárat akkor nincsen meg a kép,
sőt ha olyan emberhez akarok képet feltölteni akinél még nem volt könyvtár, az se jön létre....

0
0

mini

LaciApu képe

Én így töltöttem fel a képeimet:

<?php
  // ellenörzöm, hogy tényleg képet tölt-e fel
  $validators = array(
    'file_validate_is_image' => array(),
    'file_validate_size' => array(30 * 1024),
  );
  if ($file = file_save_upload('kep_file', $validators)) {
    $info = image_get_info($file->filepath);
    $nev = $file->filename;
 
    // könyvtárak meglétének ellenőrzése, létrehozása
    $temp = file_create_path($utvon);
    file_check_directory($temp,  FILE_CREATE_DIRECTORY);
    $ext = $info['extension'];
    $temp_nev = explode('.',$nev);
    $destination = $utvon . '/' . $temp_nev[0] . '.' . $ext;
    file_copy($file, $destination, FILE_EXISTS_REPLACE);
  }
?>
0
0
lili_ képe

a form előállító részt is be tudnád írni, mert nem tudom h az megváltozott-e 6-osban vagy se

amit te írtál az csak egyszerűen írjam be a submit fvényembe?

0
0

mini

LaciApu képe

A form ugyan az maradt:

<?php
  $form = array();
  $form['#title']                 = 'Kép hozzáadása';
  $form['#attributes']['enctype'] = 'multipart/form-data';
  $form['kep_file']               = array(
    '#type'  => 'file',
    '#title' => 'Kép feltöltés',
  );
  $form['submit']                 = array(
    '#type'  => 'submit',
    '#value' => 'Feltöltés',
  );
  return $form;
 
?>

Az előző kódot értelemszerűen kellene beilleszteni. pl.: $utvon helyett $save_path, 'kep_file' helyett "ke"...
0
0
lili_ képe

ez a megoldás több képet is enged feltölteni egy személyhez vagy ha már van fent
kép akkor azt kicserélem az éppen feltöltött képpel?

így működik a user modulban is,
de nekem engedni kell h több kép is jelen legyen egy-egy személy mappájában...

0
0

mini

LaciApu képe

Én sem nevezem át a fájlokat, csak újra összerakom a fájl nevét egyéb okokból:
$ext = $info['extension'];
$nev = $file->filename;
$temp_nev = explode('.',$nev);
$destination = $utvon . '/' . $temp_nev[0] . '.' . $ext;

Te nyugodtan használhatod így is:
$destination = $utvon . '/' . $file->filename;

0
0