コード例 #1
0
ファイル: FileDownload.comp.php プロジェクト: carriercomm/jbs
                #-----------------------------------------------------------------------
                $Length = GetUploadedFileSize($TypeID, $FileID);
                #-----------------------------------------------------------------------
                if (!$Length) {
                    return new gException('CANNOT_GET_FILE_SIZE', 'Не удалось получить размер файла');
                }
                #-----------------------------------------------------------------------
                $Data = GetUploadedFile($TypeID, $FileID);
                #-----------------------------------------------------------------------
                $FileName = SPrintF('%s.bin', $FileData['ID']);
                if ($TypeID == 'EdesksMessages') {
                    $FileName = $FileData['FileName'];
                }
                if ($TypeID == 'Profiles') {
                    $FileName = SPrintF('document_%s.%s', $FileData['ID'], $FileData['Format']);
                }
                #-------------------------------------------------------------------------------
                #-------------------------------------------------------------------------------
                Header(SPrintF('Content-Type: %s; charset=utf-8', GetFileMimeType($TypeID, $FileID)));
                Header(SPrintF('Content-Length: %u', $Length));
                Header(SPrintF('Content-Disposition: attachment; filename="%s";', $FileName));
                Header('Pragma: nocache');
                #-----------------------------------------------------------------------
                return $Data['Data'];
            default:
                return ERROR | @Trigger_Error(101);
        }
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
コード例 #2
0
ファイル: proxy.php プロジェクト: hsiun/yoyo
function UCloud_MUpload($bucket, $key, $file, $uploadId, $blkSize, $partNumber = 0)
{
    $err = CheckConfig(ActionType::MUPLOAD);
    if ($err != null) {
        return array(null, $err);
    }
    $f = @fopen($file, "r");
    if (!$f) {
        return array(null, new UCloud_Error(-1, -1, "open {$file} error"));
    }
    global $UCLOUD_PROXY_SUFFIX;
    $etagList = array();
    list($mimetype, $err) = GetFileMimeType($file);
    if ($err) {
        fclose($f);
        return array("", $err);
    }
    $client = new UCloud_AuthHttpClient(null);
    for (;;) {
        $host = $bucket . $UCLOUD_PROXY_SUFFIX;
        $path = $key . "?uploadId={$uploadId}&partNumber={$partNumber}";
        if (@fseek($f, $blkSize * $partNumber, SEEK_SET) < 0) {
            fclose($f);
            return array(null, new UCloud_Error(0, -1, "fseek error"));
        }
        $content = @fread($f, $blkSize);
        if ($content == FALSE) {
            if (feof($f)) {
                break;
            }
            fclose($f);
            return array(null, new UCloud_Error(0, -1, "read file error"));
        }
        $req = new HTTP_Request('PUT', array('host' => $host, 'path' => $path), $content, $bucket, $key);
        $req->Header['Content-Type'] = $mimetype;
        $req->Header['Expect'] = '';
        list($data, $err) = UCloud_Client_Call($client, $req);
        if ($err) {
            fclose($f);
            return array(null, $err);
        }
        $etag = @$data['ETag'];
        $part = @$data['PartNumber'];
        if ($part != $partNumber) {
            fclose($f);
            return array(null, new UCloud_Error(0, -1, "unmatch partnumber"));
        }
        $etagList[] = $etag;
        $partNumber += 1;
    }
    fclose($f);
    return array($etagList, null);
}
コード例 #3
0
 $TargetUserID = (int) $Message['TargetUserID'];
 $TargetGroupID = (int) $Message['TargetGroupID'];
 #-------------------------------------------------------------------------------
 $Upload = Upload_Get('TicketMessageFile', $Message['FileName']);
 #-------------------------------------------------------------------------------
 switch (ValueOf($Upload)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #-------------------------------------------------------------------------------
         $Data = GetUploadedFile('EdesksMessages', $Message['ID']);
         #-------------------------------------------------------------------------------
         $EmailAttachments = array(array('Name' => $Upload['Name'], 'Size' => GetUploadedFileSize('EdesksMessages', $Message['ID']), 'Mime' => GetFileMimeType('EdesksMessages', $Message['ID']), 'Data' => Chunk_Split(Base64_Encode($Data['Data']))));
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     default:
         return ERROR | @Trigger_Error(101);
 }
 #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 if ($TargetGroupID != 1) {
     #-------------------------------------------------------------------------------
     $IsOwner = $Message['UserID'] == ($OwnerID = $Message['OwnerID']);
     #-------------------------------------------------------------------------------
     if ($IsOwner) {
         #-------------------------------------------------------------------------------