fixed an autoindex issue, working on uploading files

This commit is contained in:
Me
2022-08-12 23:45:13 +02:00
parent 4d395088d0
commit a69273b88e
6 changed files with 95 additions and 8 deletions

View File

@@ -92,7 +92,7 @@ void Client::parse_request_headers(std::vector<ServerConfig> &servers)
_parse_request_fields();
// DEBUG
//print_client("headers");
print_client("headers");
if (status)
return;

View File

@@ -0,0 +1,64 @@
#! /bin/bash/php
<?php
// $FileName=$_FILES['myFile']['filename'];
# $TmpName=$_FILES['myFile']['tmp_name'];
# move_uploaded_file($TmpName, $FileName);
# echo("File was uploaded successfully!");
// this part needs to be grabed from POST uri
//$target_dir = "./www/uploaded/";
$target_dir = $_POST["upload_dir"];
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$fileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
//$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
//if(isset($_POST["submit"])) {
// $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
// if($check !== false) {
// echo "File is an image - " . $check["mime"] . ".";
// $uploadOk = 1;
// } else {
// echo "File is not an image.";
// $uploadOk = 0;
// }
//}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
//if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
//&& $imageFileType != "gif" ) {
// echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
// $uploadOk = 0;
//}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>

View File

@@ -105,11 +105,15 @@ void Webserv::_autoindex(Client *client, const std::string &path)
{
std::cout << "made it to _autoindex\n";
// std::cout << "client target: " << client->get_rq_target() << '\n';
std::string dir_list;
DIR *dir;
struct dirent *ent;
std::cout << "location root: " << client->assigned_location->root << " location path: "
// std::cout << "location root: " << client->assigned_location->root << " location path: "
<< client->assigned_location->path << '\n';
std::cout << "Path in auto is: " << path << '\n';
@@ -123,11 +127,13 @@ void Webserv::_autoindex(Client *client, const std::string &path)
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL)
{
std::cout << "ent: " << ent->d_name << '\n';
// std::cout << "ent: " << ent->d_name << '\n';
if (strcmp(".", ent->d_name) == 0)
continue ;
dir_list.append("<a href=\"");
dir_list.append(client->assigned_location->path + "/");
dir_list.append(client->get_rq_target());
if (dir_list[dir_list.size() - 1] != '/')
dir_list.push_back('/');
dir_list.append(ent->d_name);
dir_list.append("\">");
dir_list.append(ent->d_name);

View File

@@ -52,7 +52,7 @@ int Webserv::_read_request(Client *client)
}
client->raw_request.append(buf, ret);
print_special(client->raw_request);
// print_special(client->raw_request);
if (!client->header_complete)
{