示例#1
0
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;
    }
}
示例#2
0
 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");