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; }
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); }
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; }
<?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);