php -> zip upload

05/15/2007 11:33 Mizu#1
Hi, hoffe das Topic ist hier passend.

Code: [Only registered and activated users can see links. Click Here To Register...]

Hab lange nicht mehr mit PhP gearbeitet ...

Es geht darum dass die hochgeladenen Daten direkt im PhP gezipt werden.
Seite läuft über strato, script über nen Apache.
05/15/2007 11:34 mmvp4fun#2
inglesh plz
05/15/2007 12:13 NoName#3
Code:
$zip = new ZipArchive();
$zip->open($zipname, ZIPARCHIVE::CREATE);
$zip->addFile($filename);
$zip->close();
05/15/2007 14:27 Mizu#4
error tüüt tüüt

Code:
$filename = $_FILES['attachment']['name'];
$endung = get_file_ext($_FILES['attachment']['name']);
$zipname = str_replace($endung,'zip',$filename);


//----------
$zip = new ZipArchive();
$zip->open($zipname, ZIPARCHIVE::CREATE);
$zip->addFile($filename);
$zip->close();
//----------
and ther is no error msg showing up
got another advice please ?
05/15/2007 14:35 NoName#5
error_reporting(E_ALL);

pack das mal ins script dann sollte auch ne meldung kommen

und ist zip support reincompiliert?
05/15/2007 14:40 Mizu#6
hab error_reporting(E_ALL); standartmäßig drin
also es funzt nun soweit dass das zip hochgeladen wird, prob ist nur dass das archiv beschädigt ist.

edit: muss der upload denn per FTP_BINARY hochgeladen oder muss das nun dank des zips in ascii setzen ?
05/15/2007 14:50 NoName#7
welche php version?

und was ich nicht so ganz verstehe die datei wird via form hochgeladen und dann via ftp zu ne anderen server transferiert? und dann soll ne zip rausgemacht werden?
05/15/2007 14:54 Mizu#8
Jau so in etwa

Kunde logt sich auf die site ein und kann dann was uploaden.
Problem ist halt nur dass einige Kunden massig Probs mit der Benutzung von FTP's hat, deshalb recht simpel mit Ladeleiste (flash)

Wäre erfreut wenn du diesbezüglich ne andere Idee hättest.

PHP Version 5.2.1
05/15/2007 15:04 NoName#9
also habe selbst 5.2.0-8 und da funzt das ohne probs mit dem zippen.

also wenn das script auf denselben server liegt wo die files hin sollen wäre das mit ftp schonmal schwachsinn und wenn es halt auf ne anderen server soll dann sollte das erst gezipped werden und dann via ftp transfer verlagert werden.

wobei es dann evtl einfacher wäre direkt das script auf den entprechenden server bereitzustellen.
05/15/2007 15:11 Mizu#10
hap auf den ftp direkt nen apache installiert und von da aus läuft auch das script, der rest der site liegt bei strato *würg*


edit:[Only registered and activated users can see links. Click Here To Register...]
komplettes script

edit2: chmod 666 is eingestellt
05/15/2007 15:39 NoName#11
$local_file = $_FILES['attachment']['tmp_name'];

$upload = ftp_put($conn_id, $destination_file, $local_file, FTP_BINARY); // Upload the ZipFile

also lädst du die hochgeladene datei hoch und benennst die einfach nur zip kein wunder das die kaputt ist ;)


p.s. wieso strato *würg*, ich habe seit jahren da ne rootserver und bin voll zufrieden
05/15/2007 16:03 Mizu#12
ok verstehe das problem
wenn ich nun aber das zip file gemacht habe mit kann ich ja schlecht die ausgewählte Datei mit ftp_put und dem array von $zip hochladen, oder übersehe ich da was ?
05/15/2007 16:06 NoName#13
wassn für ne array?

und du gibst einfach den pfad+name vom zip an sehe da kein problem
05/15/2007 16:36 Mizu#14
njia ich weiss halt nicht wirklich wo das zipfile hingespeichert wird...
Code:
$zip = new ZipArchive();
$zip->open($zipname, ZipArchive::CREATE);
$zip->addFile($filename);
$zip->close();

$upload = ftp_put($conn_id, $destination_file, $local_file, FTP_BINARY);

//großes Fragezeichen

ps: Strato weil mein cheffe sich um nichts kümmern will und ich im endeffekt ne lösung zu den ganzen prob finden muss
hatte schon verständlicherweise massig probs mit strato und nicht wirklich bock um 4 server und dann noch nen root zu haben
denke dann würde ich mal komplett durchdrehen weil das überhaupt nicht ausbildungsbezogen ist ;)
05/16/2007 00:57 NoName#15
$zipname definiert das wo es hingespeichert wird wenn du einfach nur namen angibst dann halt ins aktuelle verzeichnisse

$upload = ftp_put($conn_id, $destination_file, $lzipname, FTP_BINARY);

sollte es schon tun