[ Index ] |
|
Code source de eZ Publish 3.9.0 |
1 <?php 2 3 define( 'TABLE_METADATA', 'ezdbfile' ); 4 define( 'TABLE_DATA', 'ezdbfile_data' ); 5 6 // Connect to storage database. 7 $serverString = STORAGE_HOST; 8 if ( defined( 'STORAGE_SOCKET' ) && STORAGE_SOCKET ) 9 $serverString .= ':' . STORAGE_SOCKET; 10 elseif ( defined( 'STORAGE_PORT' ) ) 11 $serverString .= ':' . STORAGE_PORT; 12 if ( !$db = mysql_connect( $serverString, STORAGE_USER, STORAGE_PASS ) ) 13 die( "Unable to connect to storage server.\n" ); 14 15 if ( !mysql_select_db( STORAGE_DB, $db ) ) 16 die( "Unable to connect to storage database.\n" ); 17 18 $filename = ltrim( $_SERVER['SCRIPT_URL'], "/"); 19 20 // Fetch file metadata. 21 $filePathHash = md5( mysql_real_escape_string( $filename ) ); 22 $sql = "SELECT * FROM " . TABLE_METADATA . " WHERE name_hash='$filePathHash'" ; 23 if ( !$res = mysql_query( $sql, $db ) ) 24 die( "Failed to retrive file metadata: $filePath.\n" ); 25 26 if ( !( $metaData = mysql_fetch_array( $res, MYSQL_ASSOC ) ) ) 27 { 28 header( "HTTP/1.1 404 Not Found" ); 29 ?> 30 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 31 <HTML><HEAD> 32 <TITLE>404 Not Found</TITLE> 33 </HEAD><BODY> 34 <H1>Not Found</H1> 35 The requested URL <?=htmlspecialchars( $filename )?> was not found on this server.<P> 36 </BODY></HTML> 37 <?php 38 mysql_free_result( $res ); 39 mysql_close( $db ); 40 exit( 1 ); 41 } 42 43 mysql_free_result( $res ); 44 45 // Fetch file data. 46 $fileID = $metaData['id']; 47 $sql = "SELECT filedata FROM " . TABLE_DATA . " WHERE masterid=$fileID"; 48 if ( $res = mysql_query( $sql, $db ) ) 49 { 50 // Output HTTP headers. 51 $path = $metaData['name']; 52 $size = $metaData['size']; 53 $mimeType = $metaData['datatype']; 54 $mtime = $metaData['mtime']; 55 $mdate = gmdate( 'D, d M Y H:i:s T', $mtime ); 56 57 header( "Content-Length: $size" ); 58 header( "Content-Type: $mimeType" ); 59 header( "Last-Modified: $mdate" ); 60 header( "Expires: ". gmdate('D, d M Y H:i:s', time() + 6000) . 'GMT' ); 61 header( "Connection: close" ); 62 header( "X-Powered-By: eZ publish" ); 63 header( "Accept-Ranges: bytes" ); 64 header( 'Served-by: ' . $_SERVER["SERVER_NAME"] ); 65 66 // Output image data. 67 while ( $row = mysql_fetch_row( $res ) ) 68 echo $row[0]; 69 mysql_free_result( $res ); 70 } 71 mysql_close( $db ); 72 73 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 10:30:04 2007 | par Balluche grâce à PHPXref 0.7 |