Zip van url downloaden naar specifieke map en upzippen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bjorn Hoogeveen

Bjorn Hoogeveen

24/09/2013 14:43:34
Quote Anchor link
Hallo alemaal,

Ik wil graag een zip bestand welke beschikbaar is via een URL naar mijn website halen, en deze uitpakken.

Nu lukt dit wel als ik de zip aanroep via de lokale website, maar niet via een url. Ik krijg dan namelijk een corrupte zip terug (met een andere grootte dan verwacht).

Hierbij het stukje code welke gebruikt wordt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
// juiste update bestand selecteren
$file = 'http://www.website.nl/update.zip';
//$file = 'update.zip';

// bestemming selecteren
$newfile = $_SERVER['DOCUMENT_ROOT'] . '/test/update.zip';

// kopieren + fallback
if ( copy($file, $newfile) ) {
    echo "Bestand is succesvol gedownload en lokaal verwerkt.";
}else{
    echo "Bestand downloaden en uitpakken mistlukt.";
}


Ik heb voor het gemak alle rechten op 777 gezet, maar dit geeft geen resultaat.
 
PHP hulp

PHP hulp

18/05/2024 00:10:32
 
Kris Peeters

Kris Peeters

24/09/2013 15:15:29
Quote Anchor link
Dat is dus geen probleem van unzippen, maar van rechten.
Het ziet er naar uit dat de server weigert om copy() uit te voeren op een source-bestand op een andere server.
 
Bjorn Hoogeveen

Bjorn Hoogeveen

24/09/2013 15:40:05
Quote Anchor link
Daar lijkt het inderdaad wel op ja. Misschien dat iemand hier een oplossing voor weet? Ik zie namelijk wel soortgelijke voorbeelden op het web, waarbij het wel werkt. Echter werkt het bij mij geen van alle, en krijg ik een corrupte zip terug. De source is uiteraard geen corrupte zip.

Update:
Output van de zip is trouwens altijd 5.823 bytes. Heb verschillende zip-bestanden uitgeprobeerd, maar resulteert altijd in dit aantal bytes...
Gewijzigd op 24/09/2013 16:21:24 door Bjorn Hoogeveen
 
Jan R

Jan R

24/09/2013 16:31:59
Quote Anchor link
Lees het zipbestand eens met een gewone texteditor
 
TJVB tvb

TJVB tvb

24/09/2013 16:34:06
Quote Anchor link
Wat voor error krijg je van copy?
 
Bjorn Hoogeveen

Bjorn Hoogeveen

24/09/2013 16:52:38
Quote Anchor link
@Jan R: Nu gebeurt er iets interessants: ik krijg de html-weergave van de website te zien waarop de zip is geplaatst. Buiten de html geeft die een foutpagina (pagina bestaat niet). Originele zip heeft allemaal mooie rare tekentjes.

Ik heb het geheel op een andere site getest, waarop het prima werkt. Probleem is dus specifiek voor één site.

Op de probleem-site lijkt er iets raars aan de hand te zijn: als je direct de url volgt naar de update.zip krijg je een foutpagina (pagina bestaat niet). Echter bestaat de zip wel gewoon. Heb het ook met een xml-bestand getest, en hierbij geld hetzelfde...
 
Eddy E

Eddy E

24/09/2013 16:54:51
Quote Anchor link
Blijkbaar heeft die andere website iets dat je de ZIP niet direct kan aanroepen en dan een andere pagina weer (de HTML die je krijgt).

Probeer het eens met file_get_contents() en/of ander via cURL().
 
Bjorn Hoogeveen

Bjorn Hoogeveen

24/09/2013 17:02:21
Quote Anchor link
Gelukt! In de .htaccess stond een lijst gedetineerd met toestaande extensies die direct benaderd mogen worden. Zip stond hier niet bij, waardoor er doorgestuurd werd naar de niet-bestaande pagina.

Voor gedesinteresseerd een stukje van de .htaccess file (laatste regel is bijgevoegd):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
RewriteCond %{REQUEST_URI} !.png$ [NC]
RewriteCond %{REQUEST_URI} !.js$ [NC]
RewriteCond %{REQUEST_URI} !.php$ [NC]  
RewriteCond %{REQUEST_URI} !inc/functions.php$ [NC]  
RewriteCond %{REQUEST_URI} !.css$ [NC]
RewriteCond %{REQUEST_URI} !.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.gif$ [NC]  
RewriteCond %{REQUEST_URI} !.zip$ [NC]
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.