X-Git-Url: https://dev.renevier.net/gitweb.cgi?p=syp.git;a=blobdiff_plain;f=api.php;h=521d20b0d1cdcc9b958347a0cfe56b2c95877926;hp=6ed26c9712435eec3dad280935df78b5c4023c65;hb=ec0e87c5345c39b2317fed18338681621460159d;hpb=e4a4e5149d55cf01a86f26392c52fdca803654ce diff --git a/api.php b/api.php index 6ed26c9..521d20b 100644 --- a/api.php +++ b/api.php @@ -89,6 +89,36 @@ function notanimage_error () { error ("notimage"); } +function delete_from_ftp ($file) { + $ftp_conn = ftp_connect (FTPSERVER); + $login = ftp_login ($ftp_conn, FTPUSER, FTPPASS); + if ((!$ftp_conn) || (!$login)) { + server_error (); + } + $target = sprintf ("%s/%s", FTPIMGDIR, basename ($file)); + $deleted = ftp_delete ($ftp_conn, $target); + + if (!$deleted) { + server_error (); + } + ftp_close ($ftp_conn); +} + +function send_to_ftp ($file) { + $ftp_conn = ftp_connect (FTPSERVER); + $login = ftp_login ($ftp_conn, FTPUSER, FTPPASS); + if ((!$ftp_conn) || (!$login)) { + server_error (); + } + $dest = sprintf ("%s/%s", FTPIMGDIR, basename ($file)); + $upload = ftp_put ($ftp_conn, $dest, $file, FTP_BINARY); + + if (!$upload) { + server_error (); + } + ftp_close ($ftp_conn); +} + function save_uploaded_file ($file, $con) { $dest = ""; if (isset ($file) && ($file ["error"] != UPLOAD_ERR_NO_FILE)) { @@ -98,8 +128,9 @@ function save_uploaded_file ($file, $con) { (!move_uploaded_file ($file ["tmp_name"], $dest))) { server_error (); } + send_to_ftp ($dest); } - return basename($dest); + return basename_safe ($dest); } function img_check_upload ($file) { @@ -116,12 +147,16 @@ function img_check_upload ($file) { } function delete_image_if_unused ($imgpath, $con) { + if (!isset ($imgpath) || (strlen ($imgpath) == 0)) { + return; + } if ($con->imgpath_exists ($imgpath)) { return false; } $path = UPLOADDIR . "/" . $imgpath; if (file_exists($path)) { unlink ($path); + delete_from_ftp ($path); return true; } else { return false; @@ -145,7 +180,7 @@ function unique_file ($dirname, $relpath, $con) { while ($counter < 1000) { if (!file_exists ($filename) && - !($con->imgpath_exists (basename ($filename)))) { + !($con->imgpath_exists (basename_safe ($filename)))) { return $filename; } else { $counter++;