diff --git a/default.config b/default.config index 088b63d..41bc784 100644 --- a/default.config +++ b/default.config @@ -15,6 +15,22 @@ server { error_page 404 ./www/error_pages/error_404.html; + +# something to do with /upload + + location /upload { + root ./www/test/; + index submit_form.html; + upload_dir ./www/uploaded/; + cgi_ext php; + } + + location /uploaded { + autoindex on; + root ./www/uploaded/; + } + + location /list { autoindex on; } diff --git a/srcs/Client.cpp b/srcs/Client.cpp index 5b2e8a5..db07f09 100644 --- a/srcs/Client.cpp +++ b/srcs/Client.cpp @@ -92,7 +92,7 @@ void Client::parse_request_headers(std::vector &servers) _parse_request_fields(); // DEBUG -//print_client("headers"); +print_client("headers"); if (status) return; diff --git a/srcs/cgi-bin/upload_file.php b/srcs/cgi-bin/upload_file.php new file mode 100644 index 0000000..b3786cf --- /dev/null +++ b/srcs/cgi-bin/upload_file.php @@ -0,0 +1,64 @@ +#! /bin/bash/php + + + + + 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."; + } +} +?> + + diff --git a/srcs/webserv/method_get.cpp b/srcs/webserv/method_get.cpp index a0bcd7c..f60152e 100644 --- a/srcs/webserv/method_get.cpp +++ b/srcs/webserv/method_get.cpp @@ -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("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); diff --git a/srcs/webserv/request.cpp b/srcs/webserv/request.cpp index 8b159f3..4e2a9ab 100644 --- a/srcs/webserv/request.cpp +++ b/srcs/webserv/request.cpp @@ -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) { diff --git a/www/test/submit_form.html b/www/test/submit_form.html index 0688854..e8673c6 100644 --- a/www/test/submit_form.html +++ b/www/test/submit_form.html @@ -7,9 +7,10 @@

Webserv in Test


Time to submit something:

-
- - + + + +