FILEUP



LOG | FILES | OVERVIEW


F diff --git a/php/.database.php.swp b/php/.database.php.swp
B Binary files a/php/.database.php.swp and b/php/.database.php.swp differ
F diff --git a/php/.upload.php.swp b/php/.upload.php.swp new file mode 100644
B Binary files /dev/null and b/php/.upload.php.swp differ
F diff --git a/php/database.php b/php/database.php --- a/php/database.php +++ b/php/database.php
//print count($id);
return $id[0];
}
+ /*returns the file name as it must be in the filesystem*/
+ function create_file_node(string $filename): string
+ {
+ global $storage_root;
+ $code=get_random_node_name("");
+ if($filename==NULL)return false;
+ $prep=$this->pdo->prepare("insert into nodes(is_directory,relative_path,name,code)
+ values(false,:root,:name,:code)
+ ");
+ $prep->bindParam(':name',$filename);
+ $prep->bindParam(':root',$storage_root);
+
+ $prep->bindParam(':code',$code);
+ if($prep->execute()==false)
+ {
+ error_log("could not upload file");
+ /*not so quiet error*/
+ return "error";
+ }
+ return code;
+ }
function are_linked(int $directory_id,int $node_id): bool
{
$prepare=$this->pdo->prepare("select node_id
F diff --git a/php/upload.php b/php/upload.php --- a/php/upload.php +++ b/php/upload.php
<?php
+ require_once "database.php"
+ require_once "configuration.php"
- if (!array_key_exists('uf', $_FILES)) {
+ if (!isset( $_POST["filename") || !isset($_POST["the_file"])
+ {
http_response_code(400);
- exit();
+ error_log("someone tried to upload something impropperly");
+ exit(1);
}
- $file = $_FILES['uf'];
+ $file = $_POST["the_file"];
+ $filename= $_POST["filename"];
- if (file['error'] != 0) {
- http_response_code(400);
- exit();
- }
-
- $m = md5_file($file['tmp_name']);
-
- copy($file['tmp_name'], "screen/$m.png");
+ $codename=create_file_node($filename);
- echo "http://india.fmi.fail/screen/$m.png";
+ copy($file['tmp_name'], "$storage_root/$codename");
+ echo $codename;
?>
F diff --git a/sql/.fileshare.sql.swp b/sql/.fileshare.sql.swp
B Binary files a/sql/.fileshare.sql.swp and b/sql/.fileshare.sql.swp differ
F diff --git a/sql/fileshare.sql b/sql/fileshare.sql --- a/sql/fileshare.sql +++ b/sql/fileshare.sql
type varchar(20) not null default 'data',
name varchar(100) not null default 'no name',
note varchar(200) not null default "",
- code char(30) not null default "error",
+ code varchar(100) not null default "error",
primary key (node_id)
);