Files
dog/php/php-dog/upload.php
2023-01-05 00:14:33 +01:00

136 lines
4.0 KiB
PHP

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: POST");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
try {
session_start();
// $resp = json_decode('
// {
// "success": 1,
// "user": {
// "__PHP_Incomplete_Class_Name": "CUser",
// "id": 11,
// "qr_id": "YQiwEB",
// "email": "p.para@gmx.de"
// }
// }');
// $_SESSION["user"] = $resp["user"];
require __DIR__ . '/classes/Database.php';
require __DIR__ . '/classes/lib.php';
$result = new CMsg(0);
if (!isset($_SESSION["user"]))
{
$result = new CMsg(0, 401, "not logged in");
echo $result->jsonarray();
return $result->jsonarray();
}
$user = $_SESSION["user"];
$allowTypes = array('jpg', 'png', 'jpeg', 'gif', 'pdf');
//echo var_dump($user);
// File upload path
$targetDir = "../uploads/" . $user["qr_id"];
if (!file_exists($targetDir))
{
mkdir($targetDir, 0755, true);
}
// echo "targetDir ". $targetDir . "\n";
$fileName = basename($_FILES["file"]["name"]);
$fileType = pathinfo($fileName, PATHINFO_EXTENSION);
// echo "fileName ".$fileName . "\n";
// echo "fileType ".$fileType . "\n";
if (!in_array($fileType, $allowTypes))
{
$result = new CMsg(
0,
406,
'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.'
);
echo $result->jsonarray();
return $result->jsonarray();
}
$newFilename = getNewFilename($targetDir, $fileType, 20);
// echo "newFilename ".$newFilename . "\n";
if (strlen($newFilename) == 0)
{
$result = new CMsg(
0,
507,
'Too many uploaded files on the server, try it again later'
);
echo $result->jsonarray();
return $result->jsonarray();
}
$targetFilePath = $targetDir . '/' . $newFilename;
// echo "targetFilePath ". $targetFilePath."\n";
if (isset($_POST["submit"]) && !empty($_FILES["file"]["name"]))
{
// echo "submit file name ". $_FILES["file"]["name"]."\n";
// Upload file to server
if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath))
{
// echo "move ok! ". $targetFilePath."\n";
$newPathFilename = '/' . $user["qr_id"] . '/' . $newFilename;
// echo "query " . "UPDATE dogs SET picture = '" . $newPathFilename . "' WHERE qr_id = '" . $user["qr_id"]."'\n";
$db_connection = new Database();
$conn = $db_connection->dbConnection();
// echo var_dump($conn);
// Insert image file name into database
$statement = $conn->prepare("UPDATE dogs SET picture = :filePic WHERE qr_id = :user_qr_id");
$update = $statement->execute(array('filePic' => $newPathFilename, 'user_qr_id' => $user["qr_id"]));
// echo var_dump($update);
$count = $statement->rowCount();
// echo 'rowcount ' . $count . '\n';
if ($update && $count > 0)
{
$result = new CMsg(1, 200, "The file " . $fileName . " has been uploaded successfully.");
// echo $result->jsonarray();
}
else
{
$result = new CMsg(0, 500, "File upload failed, please try again.");
// echo $result->jsonarray();
}
}
else
{
$result = new CMsg(0, 500, "Sorry, there was an error uploading your file.");
}
}
else
{
$result = new CMsg(1, 204, 'Please select a file to upload.');
}
// Display status message
echo $result->jsonarray();
}
catch(Exception $e)
{
$result = new CMsg(0, 500, $e->getMessage() );
echo $result->jsonarray();
}
?>