markosar200294
New Member
- Messages
- 56
- Reaction score
- 0
- Points
- 0
Os dejos los archivos implicados y el error.
descarga.php
<?
// permitimos la conexion con nuestra BBDD
// VERSION WEB
require ("conexionBD.php");
require ("configsube.php");
$id_user = $_GET['user'];
$nombrearchivo = $_GET['file'];
$lista = $_GET['lista'];
print ("usuarui".$id_user);
echo "</br>";
print ("archivo".$nombrearchivo);
echo "</br>";
print ("lista".$lista);
echo "</br>";
print ("--->".$directorioDR);
// version local
// OJO esto no esta muy bien hecho el user=1 es Ana por casualidad, no tiene
// nada que ver con lo privilegios
if ($lista == 0) {
$directorio1 = $directorioAlum;
} else {
// lista material propio
// $dir="home/marcosbw/public_html/material/";
$dir=$directorioDR;
print ($dir);
// Convertimos el id pasado a entero por temas de seguridad
$idarchivo = (int) mysql_real_escape_string($_GET['idlib']);
$whichestado = "SELECT estado FROM material_accedido WHERE Id_material=$idarchivo AND Id_alumno=$id_user";
$respuesta = mysql_query($whichestado, $conexion);
$filas = mysql_fetch_array($respuesta);
if ($filas[0] == 0) {
$cambiaestado = "UPDATE material_accedido SET estado=1 WHERE Id_material=$idarchivo AND Id_alumno=$id_user";
$respuesta = mysql_query($cambiaestado, $conexion);
}
where idarchivo=$idarchivo";
}
// Ahora provocamos la descarga del archivo en cuestion mediante un header
header("HTTP/1.1 200 OK"); //mandamos c�digo de OK
header("Status: 200 OK"); //sirve para corregir un bug de IE (fuente: php.net)
if (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT']) and strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 'MSIE')) // Explorer
header('Content-Type: application/force-download');
else// firefox, mozilla, safari, ...
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=" . $nombrearchivo);
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($dir . $nombrearchivo));
$fp = fopen($dir . $nombrearchivo, "r");
fpassthru($fp);
fclose($fp);
?>
configsube.php
<?session_start();
/* Aqui metemos todas las direcciones de directorios posibles, tanto para
la version local como para la version Web. Lo unico pendiente es la conexion a
la BBDD que permanece en el archivo conexionDB.php*/
/*esto es para la Web*/
//$directorio=$_SERVER['$directorio1'];
//$_SERVER['$directorio1']=$directorio;
//$_SESSION["directorio"]=$directorio1;
//$directorioAdmin=$_SERVER['$directorio1'];
chdir (material);
//
$directorioDR=$_server['DOCUMENT_ROOT'];
print ($directorioDR);
$fr_aceptacion = "<P>Se ha subido al servidor el fichero seleccionado.
</P><CENTER><H3>La operación se ha realizado
correctamente.</H3></CENTER>";
$fr_noaceptacion = "<CENTER><H3>No se ha podido subir el fichero.
</H3><P>Vuelva Atrás en su navegador y rellene
correctamente los datos del fichero 1.</CENTER>";
$fr_repetido = "<CENTER><H3>No se ha podido subir el fichero
porque ya existe.</H3><P>Vuelva Atrás en
su navegador y ponga otro nombre de fichero
diferente.</CENTER>";
$destino = "sube.php";
$machacar = "NO"; // Si el fichero existe, no se sobreescribe el que hay.
$subir_cualquiera = "SI"; // Para subir cualquier tipo de fichero.
$subir_solo = "text/plain";
?>
el resultado es el siguiente:
usuarui2
archivofaqPDF.pdf
lista1
--->home/marcosbw/public_html/material/
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 54
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 55
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 58
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 63
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 64
Warning: filesize() [function.filesize]: stat failed for home/marcosbw/public_html/material/faqPDF.pdf in /home/marcosbw/public_html/descarga.php on line 65
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 65
Warning: fopen(home/marcosbw/public_html/material/faqPDF.pdf) [function.fopen]: failed to open stream: No such file or directory in /home/marcosbw/public_html/descarga.php on line 66
Warning: fpassthru(): supplied argument is not a valid stream resource in /home/marcosbw/public_html/descarga.php on line 67
Warning: fclose(): supplied argument is not a valid stream resource in /home/marcosbw/public_html/descarga.php on line 68
IDEAS????
descarga.php
<?
// permitimos la conexion con nuestra BBDD
// VERSION WEB
require ("conexionBD.php");
require ("configsube.php");
$id_user = $_GET['user'];
$nombrearchivo = $_GET['file'];
$lista = $_GET['lista'];
print ("usuarui".$id_user);
echo "</br>";
print ("archivo".$nombrearchivo);
echo "</br>";
print ("lista".$lista);
echo "</br>";
print ("--->".$directorioDR);
// version local
// OJO esto no esta muy bien hecho el user=1 es Ana por casualidad, no tiene
// nada que ver con lo privilegios
if ($lista == 0) {
$directorio1 = $directorioAlum;
} else {
// lista material propio
// $dir="home/marcosbw/public_html/material/";
$dir=$directorioDR;
print ($dir);
// Convertimos el id pasado a entero por temas de seguridad
$idarchivo = (int) mysql_real_escape_string($_GET['idlib']);
$whichestado = "SELECT estado FROM material_accedido WHERE Id_material=$idarchivo AND Id_alumno=$id_user";
$respuesta = mysql_query($whichestado, $conexion);
$filas = mysql_fetch_array($respuesta);
if ($filas[0] == 0) {
$cambiaestado = "UPDATE material_accedido SET estado=1 WHERE Id_material=$idarchivo AND Id_alumno=$id_user";
$respuesta = mysql_query($cambiaestado, $conexion);
}
where idarchivo=$idarchivo";
}
// Ahora provocamos la descarga del archivo en cuestion mediante un header
header("HTTP/1.1 200 OK"); //mandamos c�digo de OK
header("Status: 200 OK"); //sirve para corregir un bug de IE (fuente: php.net)
if (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT']) and strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 'MSIE')) // Explorer
header('Content-Type: application/force-download');
else// firefox, mozilla, safari, ...
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=" . $nombrearchivo);
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($dir . $nombrearchivo));
$fp = fopen($dir . $nombrearchivo, "r");
fpassthru($fp);
fclose($fp);
?>
configsube.php
<?session_start();
/* Aqui metemos todas las direcciones de directorios posibles, tanto para
la version local como para la version Web. Lo unico pendiente es la conexion a
la BBDD que permanece en el archivo conexionDB.php*/
/*esto es para la Web*/
//$directorio=$_SERVER['$directorio1'];
//$_SERVER['$directorio1']=$directorio;
//$_SESSION["directorio"]=$directorio1;
//$directorioAdmin=$_SERVER['$directorio1'];
chdir (material);
//
$directorioDR=$_server['DOCUMENT_ROOT'];
print ($directorioDR);
$fr_aceptacion = "<P>Se ha subido al servidor el fichero seleccionado.
</P><CENTER><H3>La operación se ha realizado
correctamente.</H3></CENTER>";
$fr_noaceptacion = "<CENTER><H3>No se ha podido subir el fichero.
</H3><P>Vuelva Atrás en su navegador y rellene
correctamente los datos del fichero 1.</CENTER>";
$fr_repetido = "<CENTER><H3>No se ha podido subir el fichero
porque ya existe.</H3><P>Vuelva Atrás en
su navegador y ponga otro nombre de fichero
diferente.</CENTER>";
$destino = "sube.php";
$machacar = "NO"; // Si el fichero existe, no se sobreescribe el que hay.
$subir_cualquiera = "SI"; // Para subir cualquier tipo de fichero.
$subir_solo = "text/plain";
?>
el resultado es el siguiente:
usuarui2
archivofaqPDF.pdf
lista1
--->home/marcosbw/public_html/material/
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 54
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 55
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 58
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 63
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 64
Warning: filesize() [function.filesize]: stat failed for home/marcosbw/public_html/material/faqPDF.pdf in /home/marcosbw/public_html/descarga.php on line 65
Warning: Cannot modify header information - headers already sent by (output started at /home/marcosbw/public_html/configsube.php:83) in /home/marcosbw/public_html/descarga.php on line 65
Warning: fopen(home/marcosbw/public_html/material/faqPDF.pdf) [function.fopen]: failed to open stream: No such file or directory in /home/marcosbw/public_html/descarga.php on line 66
Warning: fpassthru(): supplied argument is not a valid stream resource in /home/marcosbw/public_html/descarga.php on line 67
Warning: fclose(): supplied argument is not a valid stream resource in /home/marcosbw/public_html/descarga.php on line 68
IDEAS????