Beste sitedealers,
Ik ben opzoek naar een functie maarmee ik .exe's op mijn server kan zetten en als ik een bepaalde pagina bezoek ik een zip kan downloaden met de exe's.
Ik heb al een paar scripts gevonden maar die werkte niet.
Heeft iemand deze te koop staan of nog ligen of gratis 1tje op internet staan?
Dwain
- Zip, rar functie
-
26-08-2007, 17:37 #1
Dwain.nl - Webontwikkelaar
- Berichten
- 285
- Lid sinds
- 18 Jaar
Zip, rar functie
-
-
26-08-2007, 22:33 #2Gast Guest
Enkele vragen:
- Betreft het een linux server?
- Is zip geinstalleerd?
- Is exec() bruikbaar in PHP?
Indien al deze vragen met ja beantwoord worden maak ik wel een klein gratis scriptje voor je welke ik opensource aan ga bieden aan de wereld.
-
31-08-2007, 17:19 #3
Dwain.nl - Webontwikkelaar
- Berichten
- 285
- Lid sinds
- 18 Jaar
Alle vragen ja
-
05-09-2007, 22:46 #4Gast Guest
Excuses voor de vertraging, bij deze het script (iedereen mag het vrij gebruiken, een link naar www.streamservice.eu is wel gewenst, maar niet verplicht). Aanpassen is ook toegestaan.
index.php:
PHP Code:<?php
error_reporting(E_ALL ^ E_STRICT);
/**
* Zip class requiren
*/
require_once 'zip_class.php';
require_once 'config.php';
/**
* Is er op de (upload-)knop gedrukt
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
/**
* Geldig bestand?
*/
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
if (move_uploaded_file($_FILES['filename']['tmp_name'], "./zip_files/".$_FILES['filename']['name'])) {
$bestand = './zip_files/' . $_FILES['filename']['name'];
$obj_zip = new zip_file();
$obj_zip -> add_file($bestand, $_FILES['filename']['name']);
$unique_name = time();
$filename = $unique_name . "_file.zip";
mysql_unbuffered_query("INSERT INTO zip_files (id, zipnaam) VALUES (NULL, '".mysql_real_escape_String($filename)."'");
/**
* Opslaan als bestand..
*/
/**
* $fd = fopen ($filename, "wb");
* $out = fwrite ($fd, $obj_zip -> file());
* fclose ($fd);
*/
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$filename.".zip");
echo $obj_zip -> file();
} else {
echo 'Uploaden mislukt.';
}
//echo "<a href=\"output.zip\">Click here to download the new zip file.</a>";
} else {
echo 'Geen geldig bestand opgegeven.';
}
} else {
?>
<form action="" method="post" enctype="multipart/form-data">
Selecteer een bestand:<br />
<input type="file" name="filename" size="40" /><br /><br />
<input type="submit" name="upload_submit" value="Uploaden" />
</form>
<?php
}
?>
PHP Code:<?php
class zip_file
{
/**
* Array die de data files en headers bevat voor de zip file
*
* @var array
*/
protected $_datasec = array();
/**
* Array die de centrale dir bevat voor het einde van de zip
*
* @var unknown_type
*/
protected $_ctrl_dir = array();
/**
* Gebruikt door de ZIP-object voor het aanmaken van de centrale index
*
* @var integere
*/
protected $_old_offset = 0;
/**
* Binary data voor het einde van de centrale dir
*
* @var string / binary data
*/
protected $_eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";
/**
* Constructor, niet nodig, toch even definieren
*
* @return boolean (true)
*/
public function __construct ()
{
return true;
}
public function add_file($_data, $_name)
{
/**
* Vervang backward slashen met forwarded slashen
*/
$_name = str_replace('\\', '/', $_name);
$fp = fopen($_data,"r");
$_data = fread($fp, filesize($_data));
fclose($fp);
/**
* Verkrijg de (string) lengte van de nog niet gecompresseerde data
*/
$unc_length = strlen($_data);
$crc = crc32($_data);
$zdata = gzcompress($_data, null);
$zdata = substr($zdata, 2, -4);
/**
* Gecompresseerde lengte van de data
*/
$c_len = strlen($zdata);
$_frecord = "\x50\x4b\x03\x04";
$_frecord .= "\x14\x00";
$_frecord .= "\x00\x00";
$_frecord .= "\x08\x00";
$_frecord .= "\x00\x00\x00\x00";
$_frecord .= pack('V', $crc);
$_frecord .= pack('V',$c_len);
$_frecord .= pack('V', $unc_length);
$_frecord .= pack('v', strlen($_name));
$_frecord .= pack('v', 0);
$_frecord .= $_name;
$_frecord .= $zdata;
$_frecord .= pack('V', $crc);
$_frecord .= pack('V', $c_len);
$_frecord .= pack('V', $unc_length);
/**
* Toevoegen aan onze array
*/
$this->_datasec[] = $_frecord;
/**
* Nieuwe offset berekenen, maak de record, sla de record op, update de offset
*/
$new_offset = strlen(implode("", $this->_datasec));
$cdrec = "\x50\x4b\x01\x02";
$cdrec .="\x00\x00";
$cdrec .="\x14\x00";
$cdrec .="\x00\x00";
$cdrec .="\x08\x00";
$cdrec .="\x00\x00\x00\x00";
$cdrec .= pack("V",$crc);
$cdrec .= pack("V",$c_len);
$cdrec .= pack("V",$unc_length);
$cdrec .= pack("v", strlen($_name) );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("v", 0 );
$cdrec .= pack("V", 32 );
$cdrec .= pack("V", $this->_old_offset );
$this->_old_offset = $new_offset;
$cdrec .= $_name;
$this->_ctrl_dir[] = $cdrec;
}
/**
* maak de zip aan en return de data
*
* @return unknown
*/
public function file()
{
$_data = implode('', $this->_datasec);
$_ctrl_dir = implode('', $this->_ctrl_dir);
return $_data .
$_ctrl_dir .
$this->_eof_ctrl_dir .
pack('v', sizeof($this->_ctrl_dir) .
pack('v', sizeof($this->_ctrl_dir)) .
pack('V', strlen($_ctrl_dir)) .
pack('V', strlen($_data)) .
"\x00\x00");
}
}
?>
PHP Code:<?php
$link_id = mysql_connect('localhost', 'gebruikersnaam', 'test');
mysql_select_db('database', $link_id);
?>
Code:CREATE TABLE `zip_files` ( `id` int(11) NOT NULL auto_increment, `zipnaam` varchar(25) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-
06-09-2007, 14:15 #5
Dwain.nl - Webontwikkelaar
- Berichten
- 285
- Lid sinds
- 18 Jaar
Alles werkt maar ik krijg een lege zip :S
-
09-09-2007, 10:55 #6
Dwain.nl - Webontwikkelaar
- Berichten
- 285
- Lid sinds
- 18 Jaar
????????
-
17-09-2007, 16:49 #7
Dwain.nl - Webontwikkelaar
- Berichten
- 285
- Lid sinds
- 18 Jaar
Iemand oplossing ik krijg geen error's?
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic