Ciao,
ho cercato nel forum ed in internet, ma non riesco a venirne a capo...
Sto sviluppando un modulo per drupal che, fra le altre cose, fa l'upload di un file dalla pagina di amministrazione...
La mia idea è che li metta nella cartella /excel (sono files excel), ma non mi carica nulla (per testare ho messo i permesssi a 777), di seguito vi metto lo stralcio del modulo inerente:
/**
* Implementazione hook_settings()
*/
function excel_admin() {
$form['file'] = array(
'#type' => 'fieldset',
'#title' => t('Inserimento Files'),
'#collapsible' => FALSE,
'#collapsed' => FALSE,
);
$form['file']['#attributes'] = array(
'enctype' => "multipart/form-data"
);
$form['file']['file_upload']=array('
#type'=>'file','#title'=>'Filename'
);
$form['submit'] = array('#type' => 'submit',
'#value' => t('Upload')
);
return system_settings_form($form);
}
function upload_form_submit() {
$file = file_check_upload('file_upload');
//handle the file, using file_save_upload, or something similar
if ($file){
$file = file_save_upload($file,'/excel');
}
}
Tutto il resto del modulo funziona, ma questo proprio non vuol saperne di caricare i files...
Potreste aiutarmi?
Grazie in anticipo
Broken
Ho modificato come segue, ma ancora non carica... quale può essere il problema?
/**
* Implementation of hook_form().
*
* Return an array of the form elements needed to edit this node.
*/
function excel_admin() {
// Set form parameters so we can accept file uploads.
$form['#attributes'] = array('enctype' => 'multipart/form-data');
// file upload field
$form['file_upload_excel'] = array(
'#type' => 'file',
'#title' => t('File'),
'#size' => 40,
'#default_value' => '',
);
$form['submit'] = array('#type' => 'submit', '#value' => t('Upload'));
return $form;
}
/**
* Implementation of hook_submit().
*
* If a file was uploaded save it before updating the database.
*/
function fileupload_submit() {
// if a file was uploaded, move it to the files directory
if ($file = file_check_upload('file_upload_excel')) {
file_save_upload($file, file_directory_path(), false);
}
}
Grazie ancora
Broken
Nella tua funzione submit manca un bel po' di roba:
http://api.drupal.org/api/file/developer/topics/forms_api.html
Scorri verso il fondo e scopri come ricevere e leggere gli argomenti dal form che ha effettuato il submit.
Per altro, mi chiedo come mai tu stia rifacendo una cosa già fatta nel modulo filefield.
Grazie!!!!!
La sto rifacendo in quanto sto sviluppando un modulo nuovo ed un pò particolare per caricare dei files excel e successivamente parsarli e metterli in un database... Già che c'ero ho rifatto tutto da zero :)
Grazie ancora
Broken
Sì, ma perché riscrivere la parte riguardante l'upload, quando ti puoi concentrare solo sulla parte di parsing?