upload php
This commit is contained in:
@ -46,6 +46,23 @@ class CUser
|
||||
$this->qr_id = $qr_id;
|
||||
$this->email = $email;
|
||||
}
|
||||
function jsonarray()
|
||||
{
|
||||
return json_encode([
|
||||
'id' => $this->id,
|
||||
'qr_id' => $this->qr_id,
|
||||
'email' => $this->email
|
||||
]);
|
||||
}
|
||||
function phparray()
|
||||
{
|
||||
return ([
|
||||
'id' => $this->id,
|
||||
'qr_id' => $this->qr_id,
|
||||
'email' => $this->email
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,18 +98,26 @@ function random_str(
|
||||
function getNewFilename($targetDir, $fileExt, $length)
|
||||
{
|
||||
$newFname = random_str($length);
|
||||
|
||||
// echo "newFname " . $newFname . "\n";
|
||||
|
||||
$maxtries = 100000; // prevent endless loop, most unlikely
|
||||
$tries = 0;
|
||||
// echo "file_exists " . $targetDir . '/' . $newFname . '.' . $fileExt . "\n";
|
||||
// echo "file_exists " . file_exists($targetDir . '/' . $newFname . '.' . $fileExt) . "\n";
|
||||
while(file_exists($targetDir . '/' . $newFname . '.' . $fileExt) && $tries < $maxtries)
|
||||
{
|
||||
// echo "file_exists " . $targetDir . '/' . $newFname . '.' . $fileExt . "\n";
|
||||
++$tries;
|
||||
$newFname = random_str($length);
|
||||
// echo "tries " . $tries . "\n";
|
||||
// echo "newFname " . $newFname . "\n";
|
||||
}
|
||||
if($tries < $maxtries)
|
||||
if($tries >= $maxtries)
|
||||
{
|
||||
$newFname = "";
|
||||
}
|
||||
return $newFname;
|
||||
return $newFname .".".$fileExt;
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
@ -89,7 +89,8 @@ try
|
||||
$row['qr_id'],
|
||||
$row['email']
|
||||
);
|
||||
$_SESSION['user'] = $user;
|
||||
// $_SESSION['user'] = $user;
|
||||
$_SESSION['user'] = $user->phparray();
|
||||
|
||||
$returnData = new CMsg(
|
||||
1,
|
||||
|
||||
@ -5,79 +5,135 @@ 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");
|
||||
|
||||
session_start();
|
||||
|
||||
require __DIR__.'/classes/Database.php';
|
||||
require __DIR__.'/classes/lib.php';
|
||||
try {
|
||||
|
||||
$result = new CMsg(0);
|
||||
|
||||
if(!isset($_SESSION["user"]))
|
||||
{
|
||||
$result = new CMsg(0, 401, "not logged in");
|
||||
return $result->jsonarray();
|
||||
}
|
||||
session_start();
|
||||
|
||||
$user = $_SESSION["user"];
|
||||
$allowTypes = array('jpg','png','jpeg','gif','pdf');
|
||||
// $resp = json_decode('
|
||||
// {
|
||||
// "success": 1,
|
||||
// "user": {
|
||||
// "__PHP_Incomplete_Class_Name": "CUser",
|
||||
// "id": 11,
|
||||
// "qr_id": "YQiwEB",
|
||||
// "email": "p.para@gmx.de"
|
||||
// }
|
||||
// }');
|
||||
|
||||
// File upload path
|
||||
$targetDir = "uploads/".$user->qr_id;
|
||||
if (!file_exists($targetDir))
|
||||
{
|
||||
mkdir($targetDir, 0755, true);
|
||||
}
|
||||
// $_SESSION["user"] = $resp["user"];
|
||||
|
||||
$fileName = basename($_FILES["file"]["name"]);
|
||||
$fileType = pathinfo($fileName,PATHINFO_EXTENSION);
|
||||
require __DIR__ . '/classes/Database.php';
|
||||
require __DIR__ . '/classes/lib.php';
|
||||
|
||||
if(!in_array($fileType, $allowTypes))
|
||||
{
|
||||
$result = new CMsg(
|
||||
0,
|
||||
406,
|
||||
'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.');
|
||||
return $result->jsonarray();
|
||||
}
|
||||
$result = new CMsg(0);
|
||||
|
||||
$newFilename = getNewFilename($targetDir, $fileType, 20);
|
||||
if(strlen($newFilename) == 0)
|
||||
{
|
||||
$result = new CMsg(
|
||||
0,
|
||||
507,
|
||||
'Too many uploaded files on the server, try it again later');
|
||||
return $result->jsonarray();
|
||||
}
|
||||
|
||||
$targetFilePath = $targetDir . '/' . $fileName;
|
||||
|
||||
if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"]))
|
||||
{
|
||||
// Upload file to server
|
||||
if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath))
|
||||
if (!isset($_SESSION["user"]))
|
||||
{
|
||||
// Insert image file name into database
|
||||
$update = $db->query("UPDATE dogs SET picture = '".$fileName."' WHERE qr_id = ".$user->qr_id);
|
||||
if($update)
|
||||
{
|
||||
$result = new CMsg(1,200,"The file ".$fileName. " has been uploaded successfully.");
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = new CMsg(0,500,"File upload failed, please try again.");
|
||||
}
|
||||
$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 " . $newPathFilename . " 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(0,500,"Sorry, there was an error uploading your file.");
|
||||
$result = new CMsg(1, 204, 'Please select a file to upload.');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = new CMsg(1,204,'Please select a file to upload.');
|
||||
}
|
||||
|
||||
// Display status message
|
||||
echo $result->jsonarray();
|
||||
?>
|
||||
// Display status message
|
||||
echo $result->jsonarray();
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
$result = new CMsg(0, 500, $e->getMessage() );
|
||||
echo $result->jsonarray();
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user