Zip File upload
am 07.09.2011 - 23:19 Uhr in
Hallo,
ich hoff ihr könnt mir weiterhelfen. Ich versuche gerade ein Modul zu schreiben welches ein Formular erzeugt um zip-Archive upzuloaden.
Normale Dateien (.jpg, .txt usw.) kann ich nun uploaden, aber bei einer .rar oder .zip funktioniert dies nicht.
Mein aktuelles Formular (nur mal provisorisch)
$form = array();
$form['#attributes'] = array(
'enctype' => 'multipart/form-data',
);
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Upload zip'),
'#description' => t('Pick a zip file to upload.'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Upload file',
);
return $form; und inhalt der submit methode
$file = file_save_upload('upload', array(), 'public://', FILE_EXISTS_RENAME);
//$file = file_save_upload('upload', array(), 'public://' . current_path(), FILE_EXISTS_RENAME);
//$file = file_save_upload('upload', array(), $destFolder);
if($file)
{
drupal_set_message(t('The zip-File was successfully saved.'), 'status');
//extract($destFolder, $file);
}
else
{
drupal_set_message(t('The zip-File could not be saved.'));
}Sehe ich einen Fehler nicht oder kann man ganz einfach keine Archive uploaden?
Weiter will ich natürlich auch dieses Archiv entpacken, wäre nett wenn mir wär sagen könnte wie man das machen könnte (inkl. Codebeispiel)
MfG
- Anmelden oder Registrieren um Kommentare zu schreiben

Eigentlich solltest Du mit
am 08.09.2011 - 00:04 Uhr
Eigentlich solltest Du mit aktiviertem Core FILE Modul auch zip-Dateien uploaden können.
-> http://drupal.org/documentation/modules/file
Werden diese zip-Dateien
am 08.09.2011 - 07:35 Uhr
Werden diese zip-Dateien (enthalten nur Bilder) dann auch entpackt? Bzw. kann man festlegen wohin sie entpackt werden?
Möchte dann nämlich mit einen weiteren Modul auf diese zugreifen (auslesen und anzeigen).
Pippl schriebWerden diese
am 08.09.2011 - 07:53 Uhr
Werden diese zip-Dateien (enthalten nur Bilder) dann auch entpackt? Bzw. kann man festlegen wohin sie entpackt werden?
Möchte dann nämlich mit einen weiteren Modul auf diese zugreifen (auslesen und anzeigen).
Ein automatisches Entpacken eines ZIPs kannst du mit Core-Modulen (also dem normalen Upload Modul ) nicht "machen".
Hier kannst du dir aber bei anderen Modulen Anregungen holen bzw. diese dann auch nutzen:
http://drupal.org/project/gallery_assist
http://drupal.org/project/imagefield_zip
http://simple.puntolatinoclub.de/docu/gallery-assist/optional-modules/ga...
SteffenR
SteffenR@drupal.org
am 13.09.2011 - 21:29 Uhr
Werden diese zip-Dateien (enthalten nur Bilder) dann auch entpackt? Bzw. kann man festlegen wohin sie entpackt werden?
Möchte dann nämlich mit einen weiteren Modul auf diese zugreifen (auslesen und anzeigen).
Ein automatisches Entpacken eines ZIPs kannst du mit Core-Modulen (also dem normalen Upload Modul ) nicht "machen".
Hier kannst du dir aber bei anderen Modulen Anregungen holen bzw. diese dann auch nutzen:
http://drupal.org/project/gallery_assist
http://drupal.org/project/imagefield_zip
http://simple.puntolatinoclub.de/docu/gallery-assist/optional-modules/ga...
SteffenR
Also ich habe mir jetzt diese Module angeschaut usw. sie machen nicht "viel" anders als ich.
Aber es funktioniert trotzdem noch nicht das zip-Dateien hochgeladen werden. Ich habe in der file.inc datei gefunden das ein array existiert wo erlaubte extensions stehen, habe dieses um "zip" und "rar" erweitert (könnte ich wahrscheinlich auch als array übergeben) aber auch das hat nicht geholfen.
auch fehlermeldung kommt derzeit gar keine.
Meine Formularfunktion
<?php function modulename_upload_form($form, &$form_state)
{
$form = array();
$form['#attributes'] = array(
'enctype' => 'multipart/form-data',
);
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Upload zip'),
'#description' => t('Pick a zip file to upload.'),
/*'#attributes' => array(
'accept' => 'zip',
),*/
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Upload file',
);
return $form;
} ?>
Mein Submitfunktion
<?php function modulename_upload_form_submit($form, &$form_state)
{
/* Leeres Array um den Upload aller Dateien zu ermöglichen */
$validators = array('file_validate_extensions' => array());
//$validators = array('file_validate_extensions' => array('zip', 'rar'));
$file = file_save_upload('upload', $validators, 'public://', FILE_EXISTS_RENAME);
if($file)
{
//drupal_set_message(t('The zip-File was successfully saved.'), 'status');
//extract($destFolder, $file);
}
else
{
//drupal_set_message(t('The zip-File could not be saved.'));
}
} ?>
Hat noch jemand einen Tipp für mich? Oder auch Codezeilen welche mich weiterbringen?
Wäre sehr dankbar!
Mfg Pippl