function demographicPortrait($db, $filters, $portraitType)
{
    global $users;
    splitFilters($filters, $imageFilters, $demoFilters);
    debug("demographicPortrait", $demoFilters);
    $sqlParams = array("table" => "user_upload_search");
    if ($portraitType == "personal") {
        $sqlParams["username"] = fpCurrentUsername();
    } else {
        $sqlParams["where"] = userFilterCondition($demoFilters);
    }
    //searchText: add %%
    $searchText = searchWords(arrayExtract($imageFilters, "searchText"));
    if ($searchText) {
        $sqlParams["searchText"] = $searchText;
    }
    foreach ($imageFilters as $key => $value) {
        $sqlParams[$key] = $value;
    }
    if (!@$sqlParams["order_by"]) {
        $sqlParams["order_by"] = "upload_id";
    }
    $uploads = $db->selectWhere($sqlParams);
    return $uploads;
}
Example #2
0
function processUpload($file, $username = null)
{
    if (!$username) {
        $username = fpCurrentUsername();
    }
    $tmpFile = $file["tmp_name"];
    $mimeType = $file["type"];
    $filename = utf8_decode($file["name"]);
    $filename = cleanupFilename($filename);
    $getcwd = getcwd();
    $freeSpace = disk_free_space("/");
    $uploaded = is_uploaded_file($tmpFile);
    $message = "OK";
    if (!$uploaded) {
        return errorMessage("Uploaded file not found.");
    }
    //verify file type
    if (!startsWith($mimeType, "image")) {
        return errorMessage("Uploaded file {$filename} is not an image. ({$mimeType})");
    }
    //move file to destination dir
    $dataRoot = getConfig("upload._diskPath");
    $dataRootUrl = getConfig("upload.baseUrl");
    createDir($dataRoot, $username);
    $uploadDir = combine($dataRoot, $username);
    $uploadedFile = combine($dataRoot, $username, $filename);
    $filesize = filesize($tmpFile);
    $success = move_uploaded_file($tmpFile, $uploadedFile);
    debug("move to {$uploadedFile}", $success);
    if (!$success) {
        return errorMessage("Cannot move file into target dir.");
    }
    return processImage($uploadDir, $filename);
}
Example #3
0
function saveUploadData($db, $metadata)
{
    global $dataMap, $fpConfig;
    $dbConnected = $db != NULL;
    if (!$dbConnected) {
        $db = new SqlManager($fpConfig);
    }
    if ($db->offline) {
        return -1;
    }
    //TODO: use remap between exif data and db row?
    //step 1: insert record based on image EXIF metadata
    if (!isset($metadata["upload_id"])) {
        $data = arrayRemap($metadata, $dataMap);
        //        $data["meal"] = selectMeal($data["image_date_taken"]);
    } else {
        //step 2: update record based on form data
        $data = $metadata;
    }
    $data["username"] = fpCurrentUsername();
    $data["table"] = "user_upload";
    $result = $db->saveRow($data);
    if (!$dbConnected) {
        $db->disconnect();
    }
    return $result;
}
Example #4
0
<?php

require_once "../include/includes.php";
setContentType("text", "plain");
session_start();
$db = new SqlManager($fpConfig);
$postJson = getJsonPostData();
$action = reqParam("action");
if (!$action) {
    $action = @$postJson["action"];
}
$username = fpCurrentUsername();
$response = array();
switch ($action) {
    case "saveForm":
        //save form: insert,update,delete user_answers for this user
        $user_answers = $postJson["formData"];
        $result = saveAnswers($db, $username, $user_answers);
        $response = array("answers" => count($user_answers), "result" => $result);
        break;
    case "form_questions":
    default:
        $response["questions"] = getFormQuestions($db, $_REQUEST);
        if ($username) {
            $response["user_answers"] = $db->selectWhere(array("table" => "user_answer", "username" => $username));
        }
}
$db->disconnect();
$response["queries"] = $db->getLog();
$response["time"] = getTimer(true);
echo jsValue($response);