function nxfile_downloadFile($fid) { global $_TABLES, $_CONF, $_FMCONF, $_USER; $filename = DB_getItem($_TABLES['nxfile_files'], "fname", "fid='{$fid}'"); $cat = DB_getItem($_TABLES['nxfile_files'], "cid", "fid='{$fid}'"); $extension = str_replace(".", "", strrchr($filename, ".")); $file = "{$_FMCONF['storage_path']}{$cat}/{$filename}"; $mime = $_FMCONF['downloadfiletypes'][$extension]; //we have to jam this in the outgoing queue $newfilename = nxfile_generateEditFileName($fid); $t = time(); $uid = intval($_USER['uid']); $sql = "INSERT INTO {$_TABLES['nxfile_export_queue']} (orig_filename,token,extension,timestamp,uid,fid) values ("; $sql .= "'{$filename}',"; $sql .= "'{$newfilename[1]}',"; $sql .= "'{$extension}',"; $sql .= "'{$t}',"; $sql .= "'{$uid}',"; $sql .= "'{$fid}'"; $sql .= ")"; DB_query($sql); //we need to open this file and stream it to the end user. $fp = fopen($file, "r"); //spit out the headers here header("Content-type: {$mime}"); header("Content-disposition: attachment;filename={$newfilename[0]}"); while (!feof($fp)) { $data = fread($fp, $_FMCONF['downloadchunkrate']); echo $data; } }
if (!fm_getPermission($cid, 'view')) { echo COM_refresh($_CONF['site_url'] . '?msg=1&plugin=nexfile'); exit; } $extension = str_replace(".", "", strrchr($filename, ".")); $file = "{$_FMCONF['storage_path']}{$cid}/{$filename}"; $mime = ''; foreach ($_FMCONF['allowable_file_types'] as $mimetype => $extensions) { if (array_key_exists(".{$extension}", $extensions)) { $mime = $mimetype; break; } } if (!empty($mime)) { // Add the file to the outgoing queue - so we can find it's match and replace it in-place when it's updated via the desktop agent $newfilename = nxfile_generateEditFileName($fid); $t = time(); $uid = intval($_USER['uid']); $sql = "INSERT INTO {$_TABLES['nxfile_export_queue']} (orig_filename,token,extension,timestamp,uid,fid) values ("; $sql .= "'{$filename}',"; $sql .= "'{$newfilename[1]}',"; $sql .= "'{$extension}',"; $sql .= "'{$t}',"; $sql .= "'{$uid}',"; $sql .= "'{$fid}'"; $sql .= ")"; DB_query($sql); // Change file status to locked - being edited DB_query("UPDATE {$_TABLES['nxfile_files']} SET status = 2, status_changedby_uid = {$_USER['uid']} WHERE fid='{$fid}' "); // Open this file and stream it to the end user $fp = fopen($file, "r");