buenos días amigos,
trato de arrancar una aplicación opensource, y php es nuevo para mi.
realizo una llamada:
http://midominio.es/index.php?module=uploads&action=downloadfile&return_module=Documents&fileid=1243434&entityid=7 9945
el server es w2008+IIS, y la carpeta donde se encuentra el archivo a descargar tiene permisos modificación+lectura+ejecución+escritura,
el código del archivo en cuestión (downloadfile.php):
<?php
require_once('config.php');
require_once('include/database/PearDatabase.php');
global $adb;
global $fileId, $default_charset, $app_strings;
$attachmentsid = $_REQUEST['fileid'];
$entityid = $_REQUEST['entityid'];
$returnmodule=$_REQUEST['return_module'];
$deletecheck = false;
if(!empty($entityid)) $deletecheck = $adb->pquery("SELECT deleted FROM vtiger_crmentity WHERE crmid=?", array($entityid));
if(!empty($deletecheck) && $adb->query_result($deletecheck, 0, 'deleted') == 1)
{echo $app_strings['LBL_RECORD_DELETE'];}
else {
$dbQuery = "SELECT * FROM vtiger_attachments WHERE attachmentsid = ?" ;
$result = $adb->pquery($dbQuery, array($attachmentsid)) or die("Couldn't get file list");
if($adb->num_rows($result) == 1)
{
$fileType = @$adb->query_result($result, 0, "type");
$name = @$adb->query_result($result, 0, "name");
$filepath = @$adb->query_result($result, 0, "path");
$name = html_entity_decode($name, ENT_QUOTES, $default_charset);
$saved_filename = $attachmentsid."_".$name;
$disk_file_size = filesize($filepath.$saved_filename);
$filesize = $disk_file_size + ($disk_file_size % 1024);
$fileContent = fread(fopen($filepath.$saved_filename, "r"), $filesize);
header("Content-type: $fileType");
header("Content-length: $filesize");
header("Cache-Control: private");
header("Content-Disposition: attachment; filename=$name");
header("Content-Description: PHP Generated Data");
echo $fileContent;
}
else
{
echo $app_strings['LBL_RECORD_NOT_FOUND'];
}
}
?>